在我的Android应用程序中,我通过以下示例代码运行服务:
startService(new Intent(this, TaxiService.class));
之后,有两个线程启动,如一个作为服务,第二个作为ServiceStartArguments,然后我停止服务:
stopService(new Intent(this, TaxiService.class));
在stopService之后,我仍然看到名为ServiceStartArguments的线程。 如果我运行并停止服务n-th我看到更多名为ServiceStartArguments的线程。 为什么以及如何使用ServiceStartArguments停止线程? 感谢。
EDITED 我发现问题,但没有解决方案。在我的服务中,我盯着这样的线程:
thread = new HandlerThread("ServiceStartArguments", android.os.Process.THREAD_PRIORITY_BACKGROUND);
thread.start();
mServiceLooper = thread.getLooper();
在Destroy方法中我有:
mServiceHandler.removeCallbacks(thread);
super.onDestroy();
_started = false;
但线程仍在运行。
这是ServiceStartArguments线程的一部分:
_started = true;
int seven = 0;
while (_started) {
try {
Thread.sleep(1000);
...
答案 0 :(得分:0)
Finnaly我找到了解决方案。我忘了添加到Destroy方法这一行:
mServiceLooper.quit();