前言
偶然需要使用,记录于此。
好记性不如烂笔头
正文
使用getRunningServices获取运行的服务
有时候需要盘服务是否启动,如果没有启动就需要拉起来
PS:SERVICE_PACKAGENAME和SERVICE_NAME分别是定义的包名和服务包名,这里省略。
/** * start service */ private void startService() { try { if (!isServiceRunning(SERVICE_NAME)) { Intent intent = new Intent(); intent.setComponent(new ComponentName(SERVICE_PACKAGENAME, SERVICE_NAME)); startService(intent); } } catch (Exception e) { e.printStackTrace(); } return; }
/** * @param serviceName * @return */ @SuppressWarnings("deprecation") public boolean isServiceRunning(String serviceName) { try { if (TextUtils.isEmpty(serviceName)) { return false; } ActivityManager myManager = (ActivityManager) getSystemService(Context.ACTIVITY_SERVICE); ArrayList<ActivityManager.RunningServiceInfo> runningService = (ArrayList<ActivityManager.RunningServiceInfo>) myManager.getRunningServices(Integer.MAX_VALUE); for (int i = 0; i < runningService.size(); i++) { if (runningService.get(i).service.getClassName().toString() .equals(serviceName)) { return true; } } } catch (Exception e) { e.printStackTrace(); } return false; }
注意事项
在实际测试中,Android 9.0的设备上测试。
- 系统应用 :可以获取运行的Service
- 非系统应用 :无法获取运行的Service
getRunningServices()说明废弃了,同时也说明,Android O后不在提供给第三方应用。
参考文章
暂无评论...
随机推荐
Android多线程介绍
前言记录一下Android主线程,子线程等相关知识。我们知道Android3.0后如果在主线程进行网络请求是会抛出异常的,这是为了避免主线程被耗时操作阻塞从而导致ANR。因此有必要学习一下子线程相关知识。正文搞懂什么是线程前,也需要搞懂什么是进程。什么是进程进程是操作系统结构的基础。...
CountDownTimer音量值淡入淡出
前言有时候播放开始播放和暂停时,需要做一个淡入淡出的效果,要不然急速暂停或播放,容易出现尖锐的杂音。正文显示对MediaPlayer播放和暂停时音量淡入和淡出代码片段。隐藏内容!付费阅读后才能查看!¥1 ¥3多个隐藏块只需支付一次付费阅读
[代码片段]Android像素转换工具类
前言移动项目需要根据设备进行适配,这个还是很有用的,摘抄于此,方便自己查阅。正文public class DensityUtil { public static int dip2px(float dpValue) { return (int) (dpValue * R...
TextView.setWidth()竟然失效了
前言TextView.setWidth()失效(无作用),其实好奇,既然没作用,为啥要预留这个方法呢?记录一下,方便自己查阅。正文既然要刨根问底,就需要看源码TextView。看了一下源码TextView.setWidth()//[来自谷歌翻译]//将 TextView 的宽度设置为...
SQLite的limit用法
前言本文记录一下查询数据库中limit的使用,记录于此,方便自己查阅。正文命令行limit的使用SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset 具体看如下实例展示。隐藏内容!付费阅读后才能查看!¥2 ¥3多个隐...
adb启动service等
一:启动serviceadb shell am startservice com.125la.test/.myService二:启动Activityadb shell am start com.125la.test/.MainActivity还可以带参数,我在Android 9.0测试...