如何检查Android后台服务线程(Service类)是否正在运行
2013-05-16 20:49
656 查看
描述:
如何检查后台服务(Android的Service类)是否正在运行?我希望我的Activity能够显示Service的状态,然后我可以打开或者关闭它。
回答:
Android系统提供了一个函数ActivityManager.getRunningServices可以列出当前正在运行的后台服务线程
private boolean isServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if ("com.example.MyService".equals(service.service.getClassName())) {
return true;
}
}
return false;
}
这个方法是可靠的,因为这是由Android系统提供的服务查询办法。
所以以来于OnDestroy或者OnXXX方法,甚或是Binders以及静态变量的方法都是不可靠的,因为作为一个开发者,你永远不知道Android系统什么时候会杀掉你的进程来释放内存,那些回调函数很可能根本没机会被调用。
另外,关于如果希望手工检查所有后台服务的运行状态,见如何观察和控制正在运行的Android后台服务.
form : http://www.blogjava.net/jjshcc/archive/2012/04/11/373827.html
如何检查后台服务(Android的Service类)是否正在运行?我希望我的Activity能够显示Service的状态,然后我可以打开或者关闭它。
回答:
Android系统提供了一个函数ActivityManager.getRunningServices可以列出当前正在运行的后台服务线程
private boolean isServiceRunning() {
ActivityManager manager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
for (RunningServiceInfo service : manager.getRunningServices(Integer.MAX_VALUE)) {
if ("com.example.MyService".equals(service.service.getClassName())) {
return true;
}
}
return false;
}
这个方法是可靠的,因为这是由Android系统提供的服务查询办法。
所以以来于OnDestroy或者OnXXX方法,甚或是Binders以及静态变量的方法都是不可靠的,因为作为一个开发者,你永远不知道Android系统什么时候会杀掉你的进程来释放内存,那些回调函数很可能根本没机会被调用。
另外,关于如果希望手工检查所有后台服务的运行状态,见如何观察和控制正在运行的Android后台服务.
form : http://www.blogjava.net/jjshcc/archive/2012/04/11/373827.html
相关文章推荐
- 如何检查Android后台服务线程(Service类)是否正在运行
- 如何检查Android后台服务线程(Service类)是否正在运行
- 如何检查后台服务(Android的Service类)是否正在运行?
- 如何检查后台服务(Android的Service类)是否正在运行?
- 如何检查后台服务(Android的Service类)是否正在运行?
- 如何检查后台服务(Android的Service类)是否正在运行?
- 判断Android后台服务线程(Service类)是否正在运行
- Android判断后台服务(Service)是否运行
- 检查Android进程当前是否正在后台运行
- android 检查某个服务是否正在运行
- Android 查看服务service是否正在运行 列出正在运行的服务
- 【Android】Android中判断后台服务是否正在运行
- android判断某服务是否正在后台运行
- Android判断后台Service服务是否运行,获取所有的服务
- Android判断一个Service是否运行 对服务的判断
- Android Service后台服务进程意外被kill掉之后如何重启
- Android判断某一应用是否正在运行与判断某一Service是否正在运行
- android中判断service是否正在运行
- Android之判断某个服务是否正在运行的方法
- 如何获取android中正在运行的服务