Android高手之路之获取正在运行的service,以及判断某个service是否正在运行

来源:互联网 发布:网络数据库技术 编辑:程序博客网 时间:2024/06/04 21:48

注:本文改自http://blog.csdn.net/android_tutor/article/details/5824581

其实主要是用了activityManager的getRunningServices来获取正在运行的service的列表。然后用正在运行的服务的名称去比对相等。

看代码:

package com.example.runningservice;import java.util.List;import android.app.Activity;import android.app.ActivityManager;import android.os.Bundle;import android.widget.TextView;public class RunningService extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);TextView mTextView = new TextView(this);ActivityManager mActivityManager = (ActivityManager)getSystemService(ACTIVITY_SERVICE);List<ActivityManager.RunningServiceInfo> mServiceList = mActivityManager.getRunningServices(30);// the service name which u want to judgefinal String musicClassName = "com.android.launcher2.MusicService"; boolean b = MusicServiceIsStart(mServiceList, musicClassName);  mTextView.setText("the service u need to judge is:"+b+"\n"+"all is:"+getServiceClassName(mServiceList));setContentView(mTextView);}//judge the service is startprivate boolean MusicServiceIsStart(List<ActivityManager.RunningServiceInfo> mServiceList,String className){for(int i=0;i<mServiceList.size();++i){if(className.equals(mServiceList.get(i).service.getClassName())){return true;}}return false;}// get all service name of listprivate String getServiceClassName(List<ActivityManager.RunningServiceInfo> mServiceList){String res = "";for(int i=0;i<mServiceList.size();++i){res +=mServiceList.get(i).service.getClassName()+"\n";}return res;}}

效果:


0 0
原创粉丝点击