【问题标题】:When will service stop if i don't call stopService() or stopSelf() methods如果我不调用 stopService() 或 stopSelf() 方法,服务何时停止
【发布时间】:2020-08-31 19:12:05
【问题描述】:

如果您通过调用startService() 启动服务,那么您必须调用stopService()stopSelf() 来停止服务。如果你想在做一些工作后停止服务,你可能想改用IntentService。`

如果我不使用IntentService,那么如果我不调用stopService()stopSelf() 方法,服务何时会停止?

【问题讨论】:

  • 仅当系统需要资源或任务管理器杀死您的应用/服务时...
  • @Opiatefuchs 如果我关闭应用程序,那么服务也会继续运行吗?
  • 是的,服务会一直运行,直到我写的一个案例结束。 ..
  • @Opiatefuchs 如果我关闭我的设备然后再打开,那么服务也会继续运行吗?
  • 打开和关闭是什么意思?你的意思是像重启还是你的意思是屏幕?通过重新启动,服务将停止。按屏幕,这取决于设备。例如,华为内部有一个能源管理器,如果应用程序没有受到保护,它会通过休眠来停止应用程序。它就像一个已实施的任务管理器。但并非所有设备都这样。

标签: android android-service


【解决方案1】:

如果我不使用 IntentService,那么如果我不调用 stopService() 或 stopSelf() 方法,服务何时会停止?

如果您的服务是通过startService() 启动的,并且您没有调用stopService()stopSelf(),那么您的服务将被视为“正在运行”,直到您的进程终止。您可能会或可能不会被onDestroy() 作为其中的一部分,这取决于您对进程的系统 RAM 的需求有多紧急。

如果您从onStartCommand() 返回START_STICKYSTART_REDELIVER_INTENT,则您的进程和服务应该会在不久的将来某个时间自动重启,此时 RAM 需要允许。

【讨论】:

  • 进程什么时候终止?如果我杀死我的应用程序,那么服务将被终止?
  • @user3684678:您的进程将被终止sometime after it moves to the background,或者如果用户请求它(例如,通过任务管理器杀死)。
  • 如果我正在使用 android:stopWithTask="false" 并且没有在已启动的服务中调用 stopService() 或 stopSelf() 方法,如果从最近的应用程序中清除应用程序,服务何时停止?
  • @AndroidDeveloper:我预计这在很大程度上取决于设备制造商。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-06
  • 2015-05-30
相关资源
最近更新 更多