2010.06.04日志:关于android正在运行程序的关闭问题
16lz
2021-01-26
从网上搜到的线索:
下面的代码利用Intent.CATEGORY_LAUNCHER,可以取得表示在Launcher中的所有App信息
可是如何取得正在运行状态的App信息呢?在intent里面没找到对应的定义。
希望高手指教,谢谢
-
1: PackageManager manager=getPackageManager();
2: Intent intent=new Intent(Intent.ACTION_MAIN,null);
3:
4: //在Launcher中的所有App信息--》 apps
5: intent.addCategory(Intent.CATEGORY_LAUNCHER);
6: List<ResolveInfo> apps=manager.queryIntentActivities(intent,0);
7: Collections.sort(apps,new ResolveInfo.DisplayNameComparator(manager));
2.关于开机运行的程序的获得:
线索:
getPackageManager().queryIntent***()可以指定Intent查循所有的Activity,其他组件类似!
- 思考:要想让一个Activity或BroadcastReceiver在开机时启动运行,要在项目的Androidmanifest.xml中的<intent-filter>中写上<action android:name = “android.intent.action.BOOT_COMPLETED”>
所以要可以这样处理来获得开机运行的程序:
1: public List fetch_installed_apps() {
2: PackageManager packageManager = getPackageManager();
3:
4: Intent intent = new Intent(Intent.ACTION_BOOT_COMPLETED,null);//开机启动的intent
5: List<ResolveInfo> appsList = packageManager.queryIntentActivities(intent, 0);//搜索开机启动的intent的Activity
6: // List<ResolveInfo> appsList = packageManager.queryBroadcastReceivers(intent, 0);//搜索开机启动的intent的BroadcastReceivers
7: list = new ArrayList<Map<String, Object>>(appsList.size());
8: Log.d("TAG", appsList.size()+"");
9: Iterator<ResolveInfo> l = appsList.iterator();
10:
11: while (l.hasNext()) {
12: Map<String, Object> map = new HashMap<String, Object>();
13: ResolveInfo app = (ResolveInfo) l.next();
14: String packageName = app.activityInfo.packageName;// 包名
15: String appDir = app.activityInfo.labelRes+"";// 程序的路径
16: File appFile = new File(appDir);// 由路径创建一个File
17: String fileSize = appFile.length() + "";// 当前程序的大小
18: String label = "";
19: try {
20: // label = getPackageManager().getApplicationLabel(app).toString();// Label
21: // PackageInfo pInfo = getPackageManager().getPackageInfo(
22: // packageName, MODE_APPEND);
23: // versioncode =pInfo.versionCode+"";//版本号
24: // versionName = pInfo.versionName + "";// 版本名
25: } catch (Exception e) {
26: Log.i("Exception", e.toString());
27: }
28: map = new HashMap<String, Object>();
29: map.put("name", packageName);
30: map.put("desc", appDir);
31: // map.put("img", getPackageManager().getActivityIcon(g));
32: list.add(map);
33: }
34: return list;
35: }
更多相关文章
- Android判断app是不是第一次启动
- android Service Binder交互通信实例详解
- # Android中Activity四种启动模式和taskAffinity属性详解 #(6原
- Android(安卓)退出activity 的方式总结
- [置顶] Android应用程序的debug属性
- Android程序员
- OPhone/Android应用程序内存泄漏确认与定位
- android 开机自启动的几种方法,监听不到RECEIVE_BOOT_COMPLETED的
- android 在Service中启动Activity