首页 > 学院 > 开发设计 > 正文

xxxManager常见的几种获取方法

2019-11-07 23:39:12
字体:
来源:转载
供稿:网友

1、xxxManager的获取方法

a、拿到系统服务:xxxManager = context.getSystemService(name.service)

ActivityManager am = (ActivityManager) getSystemService(accessIBILITY_SERVICE);

b、直接通过上下文.getXXX形式获得

PackageManager pm = context.getPackageManager();

c、通过实例获得

AppWidgetManager manager = AppWidgetManager.getInstance(this);

2、举例如下:

1、activityManager获取手机的内存信息(运行内存,总内存)

PRivate void initRunningInfo() { //ActivityManager 一般用来获取正在运行的一些信息,可以用来管理四大组件 //PackageManager 一般用来获取手机上安装的应用到信息 // 使用系统的API获取系统正在运行的进程的一些信息 List<RunningAppProcessInfo> runningAppProcesses = am.getRunningAppProcesses(); runningcount = runningAppProcesses.size(); // 给运行进程数赋值 tv_running_progress.append(runningAppProcesses.size() + "个"); // 方法以get开头,但是返回结果是void 那么就从那个参数对象中获取 // 这个对象相当于一个盒子 outInfo = new MemoryInfo(); am.getMemoryInfo(outInfo); // 分别使用系统的API获取系统现在可用的内存以及总的内存信息 long availMem = outInfo.availMem; // 这一句必须在4.1以上的手机才可以使用 16 // 低版本手机可以从 /proc/meminfo 文件 读取 long totalMem = outInfo.totalMem; String availMemStr = Formatter.formatFileSize(this, availMem); totalMemStrt = Formatter.formatFileSize(this, totalMem); tv_memory_info.append(availMemStr + "/" + totalMemStrt);}

2、windowManager进行自定义吐司

吐司的原理就是,通过使用WindowManager使用getsystem的服务,在窗体上面添加一个view(使用addView的方法)

//外拨电话,MyOutGoingCallReceiver outGoingCallReceiver = new MyOutGoingCallReceiver();IntentFilter filter = new IntentFilter();filter.addAction("android.intent.action.NEW_OUTGOING_CALL");filter.setPriority(Integer.MAX_VALUE);// 外拨电话广播registerReceiver(outGoingCallReceiver, filter);private class MyOutGoingCallReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub String number = getResultData(); String location = Apputils.getLocationFormNumber(number, context); //1.使用WindowManager拿到系统的服务 WindowManager mWM = (WindowManager) getSystemService(Context.WINDOW_SERVICE); //2.给addView的第一个参数填充属性 TextView tv = new TextView(context); tv.setText(location); tv.setTextColor(Color.RED); tv.setTextSize(30); //3.给addView的第二个参数:params填充属性 WindowManager.LayoutParams params = new WindowManager.LayoutParams(); params.height = WindowManager.LayoutParams.WRAP_CONTENT; params.width = WindowManager.LayoutParams.WRAP_CONTENT; params.flags = WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON; | WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE // 将不能触摸的标记注释掉 params.format = PixelFormat.TRANSLUCENT; //下面这一行没用,删了 //params.windowAnimations=com.android.internal.R.style.Animation_Toast; // 窗体的类型 分为三个级别的窗体 应用级别 子窗体级别 系统窗体级别 params.type = WindowManager.LayoutParams.TYPE_PRIORITY_PHONE; params.setTitle("mzk"); //4.使用:给窗体添加上view mWM.addView(view, params); }}

3、packageManager:拿到包的应用信息

注:作用的范围不同(getPackageInfo是整个的清单文件,而getapplicationInfo是application节点下的东西)

// 获得系统的包的管理 PackageManager manager = getPackageManager(); // PackageInfo是系统封装的一个javabean对象 对整个清单文件的封装// 通过包管理获得包的信息// 写入0代表所有的信息都要 PackageInfo info = manager.getPackageInfo(getPackageName(), 0);// 得到项目清单文件的code和name int versionCode = info.versionCode; String versionName = info.versionName;

4、桌面部件AppWidgetProvider

注:虽然后缀是provider,其实是一个receiver(继承自BroadcastReceiver)

private AppWidgetManager manager;manager = AppWidgetManager.getInstance(this);
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表