我是android的初学者,对java没什么经验......
我有一个创建ALARM MANAGER
的活动,并启动指向服务的alarmManager.setRepeating()
。
onCreate中的此服务设置部分唤醒锁以执行代码的整个执行(该应用程序用于非用户交互,因此手机始终处于待机状态。)
所有这些工作都很完美。
有时,服务不应执行整个代码,而是在执行之前退出。所以我使用了StopSelf
,但我有些疑惑:
onDestroy
函数具有删除唤醒锁的代码。 StopSelf()
是否会调用它?
无论如何,如果我没有指定任何终止服务的功能,代码执行后何时终止?
所以在我的情况下,最好是替换onDestroy()
而不是Stopself()
?
很多人!
答案 0 :(得分:10)
您应该致电stopSelf ()
停止服务。在您调用它之后,Android Framework将自动调用onDestroy()
方法。
实际上,这些onXXX()方法(前缀“on”意味着这些方法是系统的回调)应由系统调用,而不是由开发人员调用。 有关详细信息,请阅读SDK document。
答案 1 :(得分:2)
stopSelf()
完成之前调用 Thread
<{1}}在调用Thread
时运行完毕。
stopSelf()
在Service
来电时仍被销毁。
答案 2 :(得分:0)
To answer your other question the service only terminates in case stopSelf() or Context.stopService() is called.
Reference: Go to Service Lifecycle in: http://developer.android.com/reference/android/app/Service.html
答案 3 :(得分:0)
如果该服务先前已启动,请停止该服务。