永发信息网

Android判断service是否在运行

答案:1  悬赏:10  手机版
解决时间 2021-02-11 17:20
  • 提问者网友:焚苦与心
  • 2021-02-10 23:05
Android判断service是否在运行
最佳答案
  • 五星知识达人网友:孤独入客枕
  • 2021-02-10 23:28
获取正在运行的所有服务,然后进行判断,如果是自己的service,一般都是提前设置一个标识,直接判断标识位即可;

获取正在运行的所有服务:
PackageManager pm = contex.getPackageManager();

ActivityManager am = (ActivityManager) contex.getSystemService(ACTIVITY_SERVICE);
// 得到系统安装的所有程序包的PackageInfo对象

List packs = pm.getInstalledPackages(0);
List listSer= am.getRunningServices(30);
// 获取正在运行的服务
for (PackageInfo p : packs) {
HashMap map2 = new HashMap();
for (ActivityManager.RunningServiceInfo ra : listSer) {
if (ra.process.equals(p.applicationInfo.packageName)) {
// 获得该进程的内存
int[] myMempid = new int[] { ra.pid };
Debug.MemoryInfo[] memoryInfo = am
.getProcessMemoryInfo(myMempid);
int memSize = memoryInfo[0].dalvikPrivateDirty;
map2.put("size", "内存为:" + memSize + "kb");

map2.put("icon", p.applicationInfo.loadIcon(pm));// 图标
map2.put("appName", p.applicationInfo.loadLabel(pm));// 应用程序名称
map2.put("packageName", "所在包名:"
+ p.applicationInfo.packageName);// 应用程序包名
System.out.println("pi.applicationInfo.packageName===="+p.applicationInfo.packageName);

items.add(map2);
}

}
}
希望对你能有所帮助。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯