Android中正在获取的服务

              关于PackageManager和ActivityManager的使用。

              ActivityManager.RunningServiceInfo类:封装了正在运行的服务信息

           List<ActivityManager.RunningServiceInfo> listRn=am.getRunningServices(40);

                         功能:返回所有正在运行的服务

                         参数:   maxNum 代表我们希望返回的服务数目大小,一般给个稍大的值即可, 例如,50 。

ActivityManager.RunningServiceInfo 类

     常用字段:

               long   activeSince        服务第一次被激活的时间, 包括启动和绑定方式

               int      clientCount          如果该Service是通过Bind方法方式连接,则clientCount代表了service连接客户端的数目

               int      crashCount          服务运行期间,出现死机的次数

               boolean   foreground   若为true,则该服务在后台执行

               int        pid                          如果不为0,表示该service所在的进程ID号( PS:为0的话我也不清楚 - - 求指点)

               int        uid                          用户ID 类似于Linux的用户权限,例如root等                    

              String   process                 进程名,默认是包名或者由属性android:process指定

              ComponentName  service          获得该Service的组件信息 包含了pkgname / servicename信息


PackageManger类

           public abstract ApplicationInfo   getApplicationInfo( String   packageName, int flags)

             参数:packagename 包名

                flags 该ApplicationInfo是此flags标记,通常可以直接赋予常数0即可

             功能:返回ApplicationInfo对象


package com.example.activitymanager;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningServiceInfo;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;

public class MainActivity extends Activity {

	private ListView lv_main;
	private List<ActivityManager.RunningServiceInfo> listRn;
	private List list;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		// 先获取系统提供服务
		ActivityManager am = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
		listRn = am.getRunningServices(40);
		list = new ArrayList();

		for (RunningServiceInfo rsi : listRn) {
			list.add(rsi.service);
		}
		
		lv_main = (ListView) findViewById(R.id.lv_main);
		lv_main.setAdapter(new lvAdapter());
	}

	private class lvAdapter extends BaseAdapter {

		@Override
		public int getCount() {
			return list.size();
		}

		@Override
		public Object getItem(int position) {
			return null;
		}

		@Override
		public long getItemId(int position) {
			return 0;
		}

		@Override
		public View getView(int position, View convertView, ViewGroup parent) {
			View view = View.inflate(MainActivity.this, R.layout.lv_item, null);
			TextView tvService = (TextView) view.findViewById(R.id.tv_service);
			tvService.setText(list.get(position) + "");
			return view;
		}

	}
}









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值