我正在运行一个前台服务,它在用户与我的应用程序交互时在后台进行一些工作。出现的问题是当用户从应用程序中退出并从主屏幕杀死应用程序时服务没有被破坏。当我的应用程序死亡时,有没有办法杀死服务。
答案 0 :(得分:4)
您可以执行以下操作来停止服务
在stopService
活动方法中调用onDestroy
方法
希望这能解决你的问题
答案 1 :(得分:2)
用"从主屏幕杀死应用程序"我假设您的意思是从任务管理器中删除应用程序?在这种情况下,有一个convenient callback in the Service class that lets you handle this。
只需覆盖该方法并致电stopSelf()
即可。
答案 2 :(得分:1)
只需在主要活动的stopService()方法中为您的服务拨打onDestroy()。
答案 3 :(得分:0)
为什么要让服务成为前景? 如果它只是在用户与您的应用程序交互时才开始工作, 也许你不应该把它保持前景。
答案 4 :(得分:0)
我通过在我的 MainActivity 中调用 stopService(intent);
来解决它,我从另一个类调用该服务。
@Override
protected void onDestroy()
{
super.onDestroy();
stopService(intent);
}
但是对于需要有 onDestroy
方法的 yourservice.class,它是至关重要的。
@Override
public void onDestroy()
{
super.onDestroy();
stopForeground(true);
stopSelf();
}