Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android服务需要onStop()方法停止运行工作线程_Android_Service_Callback - Fatal编程技术网

Android服务需要onStop()方法停止运行工作线程

Android服务需要onStop()方法停止运行工作线程,android,service,callback,Android,Service,Callback,我有这个问题。我一直在四处寻找答案,但令我惊讶的是,我找不到任何好的答案 我有一个服务,当调用startService()时,它会在onStartCommand()中启动一个新的工作线程。现在我想在调用stopService()时关闭服务中的工作线程,但是没有onStop()方法onDestroy()也不会被调用。有人说我需要使用带有一些特殊参数的onStartCommand()来停止我的服务,但这似乎完全是倒退 一劳永逸:为什么服务类中没有onStop()方法 如何关闭驻留在服务类中的工作线程

我有这个问题。我一直在四处寻找答案,但令我惊讶的是,我找不到任何好的答案

我有一个服务,当调用
startService()
时,它会在
onStartCommand()
中启动一个新的工作线程。现在我想在调用
stopService()
时关闭服务中的工作线程,但是没有
onStop()
方法<代码>onDestroy()也不会被调用。有人说我需要使用带有一些特殊参数的
onStartCommand()
来停止我的服务,但这似乎完全是倒退

一劳永逸:为什么服务类中没有
onStop()
方法

如何关闭驻留在服务类中的工作线程


还有:
stopService(intent-intent)
中的意图在哪里?我能抓住它吗?

最简单的方法是绑定到
服务
——这样你就可以直接调用方法。我仍然不明白为什么我需要绑定服务。“我仍然不明白为什么我需要绑定服务。”因为你需要控制它。辅助线程不是标准
服务
类的固有部分,因此它是您添加的“额外”方面。为了澄清,我怀疑
服务
类没有
onStop()
方法,因为多个应用程序组件可以调用
startService
或绑定到它以使用它-如果
onStop()
可用并基本上关闭它的操作,它会破坏其他应用程序组件的功能。此外,
onDestroy()
不会立即调用,因为
服务
应用程序组件是通用Android组件中最长的多用途组件。如果它立即被销毁,而另一个组件(例如,
活动
)想要立即使用它,那么销毁->重新创建可能会涉及大量开销。绑定不需要很多工作,可能需要十几行额外的代码,它会给您绝对的控制权。unbindService(serviceConnection)如何知道要从哪个服务中解除绑定?我的意思是serviceConnection不包含信息(!?),一个活动只能同时绑定到一个服务吗?