猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
如何检查服务是否运行在Android上?
如何检查服务是否运行在Android上?
如何检查后台服务是否正在运行?
我想要一个Android活动来切换服务的状态-它允许我打开它,如果它是关闭的,如果它是开着的。
扬帆大鱼
浏览 616
回答 3
3回答
九州编程
不久前我也遇到了同样的问题。由于我的服务是本地的,所以我只需使用服务类中的静态字段来切换状态,正如hackbod所描述的那样。这里编辑(用于记录):下面是hackbod提出的解决方案:如果您的客户端和服务器代码是同一个.apk的一部分,并且您有一个具体的意图(指定确切的服务类)绑定到服务,那么您只需在服务运行时设置一个全局变量,客户端就可以检查它。我们故意没有API来检查服务是否正在运行,因为几乎没有失败,当您想要这样做时,代码中就会出现争用条件。
0
0
0
元芳怎么了
明白了!你,你们必打电话startService()以便正确注册和传递您的服务BIND_AUTO_CREATE是不够的。Intent bindIntent = new Intent(this,ServiceTask.class);startService(bindIntent);bindService(bindIntent,mConnection,0);现在,ServiceTools类:public class ServiceTools { private static String LOG_TAG = ServiceTools.class.getName(); public static boolean isServiceRunning(String serviceClassName){ final ActivityManager activityManager = (ActivityManager)Application.getContext().getSystemService(Context.ACTIVITY_SERVICE); final List<RunningServiceInfo> services = activityManager.getRunningServices(Integer.MAX_VALUE); for (RunningServiceInfo runningServiceInfo : services) { if (runningServiceInfo.service.getClassName().equals(serviceClassName)){ return true; } } return false; }}
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关分类
Android
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续