究竟做什么Stopself()?终止服务运行的最佳方法是什么?

时间:2011-12-01 07:55:48

标签: java android service

我是android的初学者,对java没什么经验......

我有一个创建ALARM MANAGER的活动,并启动指向服务的alarmManager.setRepeating()

onCreate中的此服务设置部分唤醒锁以执行代码的整个执行(该应用程序用于非用户交互,因此手机始终处于待机状态。)

所有这些工作都很完美。

有时,服务不应执行整个代码,而是在执行之前退出。所以我使用了StopSelf,但我有些疑惑:

    Service中的
  • onDestroy函数具有删除唤醒锁的代码。 StopSelf()是否会调用它?

  • 无论如何,如果我没有指定任何终止服务的功能,代码执行后何时终止?

所以在我的情况下,最好是替换onDestroy()而不是Stopself()? 很多人!

4 个答案:

答案 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)

如果该服务先前已启动,请停止该服务。