在App关闭/退出时停止所有已启动的服务

时间:2010-04-18 00:27:33

标签: android

当用户点击主页按钮时是否可以停止所有已启动的服务?

我用:

startService(new Intent(ClassName.this, ClassName2.class));
stopService(new Intent(ClassName.this, ClassName2.class));

这意味着我必须以某种方式为我的7个应用类添加'stopService()' 我研究了这个主题,我认为有'onTerminate',但仍然不确定应该如何实现。

任何帮助或提示将不胜感激! 谢谢!

2 个答案:

答案 0 :(得分:16)

  

是否可以停止所有已开始   用户点击主页时的服务   按钮?

不直接。对于初学者来说,你无法知道他们是在按住HOME。

如果您只想在活动使用时运行该服务,请考虑删除startService()。相反,请在需要该服务的活动的bindService()方法中使用onStart(),并在相应的unbindService()方法中调用onStop()。您可以使用BIND_AUTO_CREATE在需要时延迟启动服务,Android将在所有连接未绑定后自动停止服务。

答案 1 :(得分:2)

如果您希望在用户离开您的应用时停止服务,我会询问您是否要使用服务。您可能只是让您的应用程序变得比它需要的更复杂。

此外,这条线确实值得怀疑:

startService(new Intent(ClassName.this, ClassName2.class));

你正在制作一个Intent,其动作是一个类的类名,而数据URI是另一个类的类名......!也许你的意思是“new Intent(context,MyService.class)”?