在谷歌上,我已经看到这个问题发布了很多次,在过去的几年里这个论坛上的一些帖子。我从来没有见过任何人得到一个直接的答案。
我有一个前台服务,它试图在运行2小时后通过执行this.StopSelf()来停止自身。当绑定和未绑定时,我都尝试过。在AVD和设备上。
它根本不起作用。这是Android中的一个bug吗?(运行2.3.3)。
服务如何停止自身?
发布于 2015-06-01 12:34:57
我遇到了这个问题,在搜索中我找到了这个帖子。我的应用程序的问题是,当服务调用stopSelf()时,绑定服务的前台活动仍在运行。stopSelf被调用,但服务不会被销毁,因为前台活动仍被绑定。当我通过按back或转到主屏幕来离开活动时,服务将被销毁。简而言之,当绑定前台活动时,stopSelf将不起作用。
发布于 2016-02-09 05:27:21
我遇到了这个selfStop()
问题,它也不能工作。
要理解的主要思想是服务不会停止,
如果正在运行的循环仍在运行(例如while(mDoWhile)
)。
或任何其他需要首先销毁/注销的问题。
因此,要使stopSelf()
或stopService(intent)
正常工作,
在您的服务中实现onDestroy()
:
@Override
public void onDestroy()
{
// Unregistered or disconnect what you need to
// For example: mGoogleApiClient.disconnect();
// Or break the while loop condition
// mDoWhile = false;
super.onDestroy();
}
发布于 2015-05-05 18:50:10
我也面临着同样的问题。
众所周知,Service
是在应用的UI Thread
上运行的。所以,除非你在你的服务中有一个在后台运行的Thread
,并且你调用了stopSelf()
,否则它不会工作。为此,您必须先停止该Thread
,然后执行stopSelf()
。
在停止所有来自Service
stopSelf()
方法的后台Thread
之后,它肯定会工作。
https://stackoverflow.com/questions/13713646
复制相似问题