当前位置:首页 > 技术心得 > 正文内容

android Service : onStartCommand intent为null

xjtudll11年前 (2016-02-19)技术心得13500

参考资料:

http://hold-on.iteye.com/blog/2024926

问题:

service中加入onStartCommand之后,不定期crash。

分析:

经查看onStartCommand中代码,只有intent为空才可能报NullPointException 。

intent的参数是null,原因是这个intent参数是通过startService(Intent)方法所传递过来的,但是如果Service在你的进程退出后有可能被系统自动重启,这个时候intent就会是null.

为什么service会自动重启呢?

onStartCommand里return START_STICKY,系统内存不足杀掉service之后,若内存足够,则会自动重启service。

解决方法:

在使用intent前需要判断一下是否为空。

扫描二维码推送至手机访问。

版权声明:本文由鸟的天空发布,如需转载请注明出处。

本文链接:http://xjtudll.cn/Exp/388/

标签: Android
分享给朋友:

“android Service : onStartCommand intent为null” 的相关文章

模数转换器基本原理

模数转换器基本原理

模数转换一般分为采样、保持、量化和编码四步进行。 采样-保持 采样是将时间上连续变化的信号转换为时间上离散的信号,采样值取决于采样时间内输入模拟信号的大小。 根据采样定理,其采样频率fS必须大于等于输入模拟信号包含的最高频率fmax的两倍。采样频率的一般选取为: 要对模拟信号的采样值进行...

Altium导入网表Netlist

Altium导入网表Netlist

用Altium的时候,发现原来Protel99SE里面的通过Netlist更新到PCB的功能不见了。乍一看,似乎只能通过Update来更新PCB了,其实不然,原来通过Netlist更新PCB的功能依然存在,只是难以找到这个功能菜单而已。 在Altium里面,是show difference方式的,...

VS2010 RDLC报表不识别xsd数据源

VS2010 RDLC报表不识别xsd数据源

1、如果是VS2010,则只能将xsd数据源放在工程的根目录 这时候RDLC报表里添加数据集才能找到xsd数据源 2、将VS2010升级到VS2010 SP1 升级之后,就支持将xsd数据源放在任意文件夹下了...

ML610Q473 程序烧录

ML610Q473 程序烧录

仿真器能够仿真程序的运行,但毕竟是“仿”,与实际情况可能有些出入,因此最终还是要将程序烧录到实际的目标板中。 对于ML610Q473,大体要有这么几步: (1) uEase与目标板连接 (2) 生成Hex文件 (3)转换Hex文件供烧录 1、uEase与目标板连接 (1)...

dell服务器阵列中硬盘的状态变成外来(foreign)的解决方法

Dell服务器硬盘的状态变成外来(foreign),然后机房就重新导入一下就可以了: dell服务器移除RAID5中1块硬盘后再插上去,硬盘的状态变成外来(foreign),如何恢复成就绪的状态? 重启服务器,注意引导信息提示 RAID控制器 相关信息时,会发现这样提示: Fo...

Qt无法定位程序输入点

Qt无法定位程序输入点

       Qt发布程序的时候,运行exe文件(位于release文件夹),提示Qt无法定位程序输入点于动态链接库QtCore4.dll上,如图所示。   碰到这个问题,当然第一件事是在\Qt\2009.05...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。