线程servicestartarguments仍然在stopService之后运行

时间:2016-08-05 05:47:22

标签: java android multithreading service

在我的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);
...

1 个答案:

答案 0 :(得分:0)

Finnaly我找到了解决方案。我忘了添加到Destroy方法这一行:

mServiceLooper.quit();