我想打电话
的onDestroy()
android中的服务方法。
我已经在互联网上搜索了很多,很多答案就像是
服务部队停止或以某种方式停止onDestroy()。
但我真的需要知道什么时候停止服务。
我的项目是关于音乐播放器。
因此它使用服务并且持续通知。 我需要找出什么时候服务停止?并需要停止播放音乐并删除通知。
但它从未显示onDestroy()的任何日志。 任何人都可以帮助我什么是它的替代品?如果不是onDestroy()那么哪种方法又如何?
编辑:
我不想明确地调用ondestroy。我想从运行应用程序的设备菜单中删除我的应用程序时删除通知。因为当我停止我的申请时,ondestroy不会打电话,我的通知仍然在状态栏中。
我已使用此代码启动了我的服务。 Intent playin = new Intent(this,MusicService.class); startService(弹唱);
答案 0 :(得分:9)
在服务类中,请致电:
stopSelf();
来自其他课程,例如 MainActivity :
Intent i = new Intent(this, ServiceName.class);
stopService(i);
这两项都将停止您的服务。确保您返回START_NOT_STICKY
,以便服务不会再次重新启动。
答案 1 :(得分:2)
我想在android中调用
onDestroy()
Service
方法。
public void onDestroy()
系统调用以通知服务它已不再使用 正被删除。该服务应该清理它拥有的任何资源 (此时,线程,注册接收器等)。回来后,那里 将不再调用此Service对象,它是有效的 死。不要直接调用此方法。
但是,您可以检查服务是否正在运行。
我需要找出服务何时停止?并需要停止音乐和 删除通知。
使用以下方式 -
private boolean isMyServiceRunning(Class<?> serviceClass) {
ActivityManager manager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if (serviceClass.getName().equals(service.service.getClassName())) {
return true;
}
}
return false;
}
然后使用 - isMyServiceRunning(MyService.class)
调用它。
参考:
答案 2 :(得分:2)
当您想要停止服务时,只需触发意图停止服务,如下所示。
Intent intent = new Intent();
intent.setClass(getApplicationContext(), YourService.class);
stopService(intent);
这是强制停止服务。当你以这种方式停止服务时,它保证了android框架调用onDestroy方法。
希望这有助于解决您的问题。