首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >StopSelf不会停止我的服务

StopSelf不会停止我的服务
EN

Stack Overflow用户
提问于 2012-12-05 07:10:51
回答 6查看 22.2K关注 0票数 20

在谷歌上,我已经看到这个问题发布了很多次,在过去的几年里这个论坛上的一些帖子。我从来没有见过任何人得到一个直接的答案。

我有一个前台服务,它试图在运行2小时后通过执行this.StopSelf()来停止自身。当绑定和未绑定时,我都尝试过。在AVD和设备上。

它根本不起作用。这是Android中的一个bug吗?(运行2.3.3)。

服务如何停止自身?

EN

回答 6

Stack Overflow用户

发布于 2015-06-01 12:34:57

我遇到了这个问题,在搜索中我找到了这个帖子。我的应用程序的问题是,当服务调用stopSelf()时,绑定服务的前台活动仍在运行。stopSelf被调用,但服务不会被销毁,因为前台活动仍被绑定。当我通过按back或转到主屏幕来离开活动时,服务将被销毁。简而言之,当绑定前台活动时,stopSelf将不起作用。

票数 3
EN

Stack Overflow用户

发布于 2016-02-09 05:27:21

我遇到了这个selfStop()问题,它也不能工作。

要理解的主要思想是服务不会停止,

如果正在运行的循环仍在运行(例如while(mDoWhile))。

或任何其他需要首先销毁/注销的问题。

因此,要使stopSelf()stopService(intent)正常工作,

在您的服务中实现onDestroy()

代码语言:javascript
复制
@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();
}
票数 3
EN

Stack Overflow用户

发布于 2015-05-05 18:50:10

我也面临着同样的问题。

众所周知,Service是在应用的UI Thread上运行的。所以,除非你在你的服务中有一个在后台运行的Thread,并且你调用了stopSelf(),否则它不会工作。为此,您必须先停止该Thread,然后执行stopSelf()

在停止所有来自Service stopSelf()方法的后台Thread之后,它肯定会工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13713646

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档