描述:

如何检查后台服务(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系统什么时候会杀掉你的进程来释放内存,那些回调函数很可能根本没机会被调用。

更多相关文章

  1. Android(安卓)软键盘盖住输入框的问题
  2. android:Handler
  3. 关于onConfigurationChanged
  4. 2012.06.28(2)——— android onMeasure和onLayout
  5. android thread handler timertask
  6. Android如何平移一个View
  7. Android使用WebView和JS互相调用
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android(安卓)Studio 简单介绍和使用问题
  2. Android(安卓)Studio的TextView实现滚动
  3. Android(安卓)ANT 如何编译Jar 和 APK
  4. ■Android中尺寸单位杂谈
  5. Android屏幕适配总结
  6. 手动安装Android(安卓)Platform
  7. android之图片切圆角
  8. Android(安卓)获取内外置存储卡方法
  9. Android(安卓)四种启动模式详解
  10. Android之个性化ListView实现