谷歌搜索的时候,我已经看到了这个问题发表了很多次,一些在这个论坛是在过去几年的职位。 我从来没有见过任何人都得到一个明确的答案。
我试图做一个this.StopSelf运行2小时后停止本身前台服务()。 我试过它时,它的约束,当它的绑定。 在AVD和设备上。
它根本不起作用。 这是Android的一个bug? (运行2.3.3)。
服务如何能自行停止?
谷歌搜索的时候,我已经看到了这个问题发表了很多次,一些在这个论坛是在过去几年的职位。 我从来没有见过任何人都得到一个明确的答案。
我试图做一个this.StopSelf运行2小时后停止本身前台服务()。 我试过它时,它的约束,当它的绑定。 在AVD和设备上。
它根本不起作用。 这是Android的一个bug? (运行2.3.3)。
服务如何能自行停止?
如果使用前景的服务,您应该拨打:
stopForeground(true);
就像你启动它startForeground
。
stopSelf
是指用于正常的服务。 前台服务是特殊的... :)
顺便说一句,如果您的应用程序应该在旧设备的工作,你应该检查所提供的兼容性代码在这里 。
我发现停有把握服务的唯一方法是使用:
android.os.Process.killProcess(android.os.Process.myPid());
这种行为可以通过当那些没有完成的工作线程引起stopSelf
被调用。 如果您使用的工作线程, 要小心你如何使用这个-你可能会泄漏内存,如果你不执行前行清理。
我遇到了一个类似的problem.Through我搜索发现:在其他活动的onCreate方法我绑定的服务,但不解除绑定 onDestory method.After解决这个问题,当我打电话stopSelf那么服务的onDestory方法调用。 我希望它可以帮助你。
在同一时间,我找到安卓GOVER文档库。
服务可以同时起步,并没有绑定到它的连接。 在这种情况下,系统将保留该服务,只要它要么启动或有一个或多个连接到它与Context.BIND_AUTO_CREATE标志运行。 一旦没有这些情况下持有,该服务的的onDestroy()方法被调用,服务也有效地终止。 所有清理(停止线程,注销接收器)应该是完整的从后返回的onDestroy()。
我遇到的这个问题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();
}
我有这个问题,搜索,我发现这个线程。 我的应用程序的问题是,当服务调用stopSelf(),结合该服务的前台活动仍在运行。 Thne stopSelf被称作但前景活动仍在绑定的服务不被破坏。 当我按回到或将主屏幕离开活动,那么该服务被破坏。 总之,当一个前台活动势必stopSelf将无法正常工作。
我正面临同样的问题了。
大家都知道, Service
上运行应用程序的UI Thread
。 所以,直到你Thread
是在后台运行的服务,你在呼唤stopSelf()
那么它不会工作。 对于您必须停止Thread
,然后再执行stopSelf()
回采所有背景后, Thread
从Service
stopSelf()
方法肯定会工作。
stopSelf
可能不破坏服务,如果条件不具备,但你可以stopService
与应用程序上下文。 但要确保该服务不会在调用之前重新启动stopService
内的服务。
stopService(applicationContext, MyService::class.java)