博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
获取正在运行的服务
阅读量:5318 次
发布时间:2019-06-14

本文共 2773 字,大约阅读时间需要 9 分钟。

手机上安装的App,在后台运行着很多不同功能的服务,最常见的例如消息推送相关的服务。如何查看这些服务?如何判断某个服务是否正在运行?如何停止某一个服务呢?请看下面的方法:

package com.example.servicelistdemo;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import android.app.Activity;import android.app.ActivityManager;import android.app.ActivityManager.RunningServiceInfo;import android.content.Context;import android.content.Intent;import android.os.Bundle;import android.widget.ArrayAdapter;import android.widget.ListView;public class MainActivity extends Activity {
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); ListView lv = (ListView) findViewById(R.id.lvService); List
serviceList = new ArrayList
(); //获取服务列表 ActivityManager activityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE); List
runningServicesList = activityManager.getRunningServices(Integer.MAX_VALUE); for(RunningServiceInfo si: runningServicesList){ serviceList.add(si.service.getClassName()); } ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, serviceList); lv.setAdapter(adapter); adapter.notifyDataSetChanged(); } /** * 用来判断服务是否运行. * * @param ctx Context * @param className 判断的服务的名字 "com.xxx.xx..XXXService" * @return true 在运行, false 不在运行 */ public static boolean isServiceRunning(Context ctx, String className) { boolean isRunning = false; ActivityManager manager = (ActivityManager) ctx.getSystemService(Context.ACTIVITY_SERVICE); List
servicesList = manager.getRunningServices(Integer.MAX_VALUE); Iterator
iterator = servicesList.iterator(); while (iterator.hasNext()) { RunningServiceInfo service = (RunningServiceInfo) iterator.next(); if (className.equals(service.service.getClassName())) { isRunning = true; } } return isRunning; } /** * 停止服务. * * @param ctx Context * @param className 服务的名字 * @return true 在运行, false 不在运行 */ public static boolean stopRunningService(Context ctx, String className) { Intent intent_service = null; boolean ret = false; try { intent_service = new Intent(ctx, Class.forName(className)); } catch (Exception e) { e.printStackTrace(); } if (intent_service != null) { ret = ctx.stopService(intent_service); } return ret; }}

代码很好理解,就不详细分析了,运行效果图如下:

手机服务列表

转载于:https://www.cnblogs.com/lishbo/p/9956031.html

你可能感兴趣的文章
读书笔记:季羡林关于如何做研究学问的心得
查看>>
面向对象的优点
查看>>
[转载]unix环境高级编程备忘:理解保存的设置用户ID,设置用户ID位,有效用户ID,实际用户ID...
查看>>
堆排序
查看>>
套接口和I/O通信
查看>>
thinkpaidE480office安装文件夹
查看>>
eclipse中git插件配置 编辑
查看>>
梧桐那时雨http://blog.csdn.net/fuchaosz/article/details/51882935?readlog
查看>>
java.io.IOException: Can't read [\jre\lib\rt.jar]
查看>>
GJM : Unity3D 高通Vuforia SDK AR 开发
查看>>
cron表达式举例
查看>>
[bzoj1087] [SCOI2005]互不侵犯King
查看>>
谷歌站长指南:如何轻松恢复被黑客入侵的网站
查看>>
个人每日总结12
查看>>
【转】 Pro Android学习笔记(八三):了解Package(2):包签名过程
查看>>
javax.el.PropertyNotFoundException: Property 'imgUrl' not found on type java.lang.String
查看>>
Java工具类DateFormatUtils详解
查看>>
Android:有关下拉菜单导航的学习(供自己参考)
查看>>
隐式接口和编译期多态
查看>>
POJ 3278 The merchant
查看>>