关于后台运行Service的一点有关问题
关于后台运行Service的一点问题
我在一个Application里写了一个后台运行的Service,主要功能是计时并发出通知,在启动应用程序的时候用startService启动服务。
现在通过调试发现,Service的功能没有问题,但是只有在应用程序中启动服务时它才有效,退出Activity之后,虽然在系统设置里的“正在运行的服务”里还有它,但是已经不再按时发出通知了。。。有什么办法能让服务一直在后台有效运行?
还有一个问题是,我希望这个服务可以开机自动启动,于是写了一个类继承BroadcastReceiver,在onReceive(context, intent)里判断接收到的intent的Action,如果是"android.intent.action.BOOT_COMPLETED"就startService。在AndroidManifest.xml里加了以下代码:
不过好像没有用。求指点!
------解决方案--------------------
http://www.cnblogs.com/ssqjd/archive/2009/02/08/1386460.html
自己对比一下
------解决方案--------------------
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
是不是没有添加权限?
------解决方案--------------------
回答问题1:
不按时发出通知不代表服务已经停止,或许是你发出通知的代码块有问题呢?请你确认你的服务已经停止(定时打印log手段),然后大家才能帮你定位问题。
------解决方案--------------------
写日记,查看日记来发现问题比较靠谱
我在一个Application里写了一个后台运行的Service,主要功能是计时并发出通知,在启动应用程序的时候用startService启动服务。
现在通过调试发现,Service的功能没有问题,但是只有在应用程序中启动服务时它才有效,退出Activity之后,虽然在系统设置里的“正在运行的服务”里还有它,但是已经不再按时发出通知了。。。有什么办法能让服务一直在后台有效运行?
还有一个问题是,我希望这个服务可以开机自动启动,于是写了一个类继承BroadcastReceiver,在onReceive(context, intent)里判断接收到的intent的Action,如果是"android.intent.action.BOOT_COMPLETED"就startService。在AndroidManifest.xml里加了以下代码:
- XML code
<receiver android:name=".BootBroadcastReceiver" android:label="@string/app_name"> <intent-filter> <action android:name= "android.permission.RECEIVE_BOOT_COMPLETED"> </action> <category android:name= "android.intent.category.LAUNCHER"> </category> </intent-filter> </receiver>
不过好像没有用。求指点!
------解决方案--------------------
http://www.cnblogs.com/ssqjd/archive/2009/02/08/1386460.html
自己对比一下
------解决方案--------------------
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"></uses-permission>
是不是没有添加权限?
------解决方案--------------------
回答问题1:
不按时发出通知不代表服务已经停止,或许是你发出通知的代码块有问题呢?请你确认你的服务已经停止(定时打印log手段),然后大家才能帮你定位问题。
------解决方案--------------------
写日记,查看日记来发现问题比较靠谱