为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

android获取正在运行的应用程序

2013-03-31 8页 doc 131KB 27阅读

用户头像

is_925133

暂无简介

举报
android获取正在运行的应用程序android获取正在运行的应用程序 因为在framework中想添加这个功能,所以写了个appliction来实现一下获取正在运行的应用程序: 这个app主要是简单的实现了获取非系统的应用程序和一些常用的系统应用程序,显示在一个listview中,并添加了点击(回复到你打开的界面)和长按事件(关闭应用程序)。 看看代码吧: 直接贴出来再加上注释吧(直接写在一个文件里): 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 ...
android获取正在运行的应用程序
android获取正在运行的应用程序 因为在framework中想添加这个功能,所以写了个appliction来实现一下获取正在运行的应用程序: 这个app主要是简单的实现了获取非系统的应用程序和一些常用的系统应用程序,显示在一个listview中,并添加了点击(回复到你打开的界面)和长按事件(关闭应用程序)。 看看代码吧: 直接贴出来再加上注释吧(直接写在一个文件里): 001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045 046 047 048 049 050 051 052 053 054 055 056 057 058 059 060 061 062 063 064 065 066 067 068 069 070 071 072 073 074 075 076 077 078 079 080 081 082 083 084 085 086 087 088 089 090 091 092 093 094 095 096 097 098 099 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 package andorid.tasks; import java.io.File; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.app.Activity; import android.app.ActivityManager; import android.app.ActivityManager.RunningAppProcessInfo; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.Intent; import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemLongClickListener; import android.widget.ImageView; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.AdapterView.OnItemClickListener; import android.widget.SimpleAdapter.ViewBinder; public class ManagerTasksActivity extends Activity {     private ListView listView;     private PackageManager pm;     @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.task_main);          pm= this.getPackageManager();//获得包管理器         listView=(ListView)findViewById(R.id.list_view);         LoadList(this);//加载listview               }     private void LoadList(Context context)     {         ArrayList> list=new ArrayList>();            try{                        ActivityManager am = (ActivityManager)context.getSystemService(Context.ACTIVITY_SERVICE);  //获得ActivityManager对象             List runningTasks = am.getRunningAppProcesses();  //获得所有正在进行的程序存放在一个list中              for(int i=0;i map=new HashMap();                      map.put("icon", pInfo.getInfo(runningTasks.get(i).processName).loadIcon(pm));                       map.put("name", pInfo.getInfo(runningTasks.get(i).processName).loadLabel(pm));                      if(size>1024*1024)                      map.put("info", size/1024/1024+" MB");                      else                      map.put("info", size/1024+" KB");                      map.put("packagename", runningTasks.get(i).processName.toString());//获得包名给后面用                      list.add(map);                 }                             }            }catch(Exception ex)            {}            SimpleAdapter listadapter=new SimpleAdapter(this, list, R.layout.task_list, new String[]{"icon","name","info"}, new int []{R.id.icon,R.id.name,R.id.info});               listView.setAdapter(listadapter);//listview加载识别器               //下面这个方法主要是用来刷新图片,因为pInfo.getInfo(runningTasks.get(i).processName).loadIcon(pm)获得图片不能被显示出               listadapter.setViewBinder(new ViewBinder(){                          public boolean setViewValue(View view,Object data,String textRepresentation){                              if(view instanceof ImageView && data instanceof Drawable){                                  ImageView iv=(ImageView)view;                                  iv.setImageDrawable((Drawable)data);                                 return true;                             }                             else                                 return false;                         }                     }); //为listView添加item的点击事件               listView.setOnItemClickListener(new OnItemClickListener() {             @Override             public void onItemClick(AdapterView parent, View view, int position,                     long id) {                 //get the item of the list to a hashmap                 HashMap map=(HashMap)parent.getItemAtPosition(position);                 //get package name from map                 String packageName=(String) map.get("packagename");//从前面的map中获得包名                 //if we onclick the item then start the application //根据包名打开应用程序                 Intent intent=new Intent();                 intent =pm.getLaunchIntentForPackage(packageName);                 startActivity(intent);                 finish();//打开应用程序之后注销本应用程序             }         }); //为listview的item添加长按事件               listView.setOnItemLongClickListener(new OnItemLongClickListener() {               @Override             public boolean onItemLongClick(AdapterView parent, View view,                     int position, long id) {                 final HashMap long_map=(HashMap)parent.getItemAtPosition(position);                 new AlertDialog.Builder(ManagerTasksActivity.this).setTitle("Are you sure close")                 .setPositiveButton("sure", new OnClickListener() {                                           @Override                     public void onClick(DialogInterface dialog, int which) {                         ActivityManager am = (ActivityManager)getSystemService(Context.ACTIVITY_SERVICE);                         String packageName=(String)long_map.get("packagename");                         //base packagename to kill appliction                         //根据包名杀死应用程序                         am.killBackgroundProcesses(packageName);                         //refash list                         //刷新listview                         LoadList(ManagerTasksActivity.this);                     }                 }).setNegativeButton("cancle", new OnClickListener() {                                           @Override                     public void onClick(DialogInterface dialog, int which) {                                            }                 }).show();                 return false;             }         });     }       } //类PackageInfo主要包括ApplicationInfo getInfo(String name)方法 class PackageInfo {      private List appList;                public PackageInfo(Context context){              //get all package data             PackageManager pm = context.getApplicationContext().getPackageManager();              appList = pm.getInstalledApplications(PackageManager.GET_UNINSTALLED_PACKAGES);         }                    public ApplicationInfo getInfo(String name){              if(name == null){                  return null;              }              for(ApplicationInfo appInfo : appList){                  if(name.equals(appInfo.processName)){                      return appInfo;                  }              }              return null;          }  } xml文件: lsit:                                                                                                 main: 01 02 03 04 05 06 07 08 09 10 11 12 13 14          在manifest文件中要加以个权限: 主要是前面的am.killBackgroundProcesses(packageName);方法要这个权限。 转自:http://blog.csdn.net/xiaxiangnanxp1989/article/details/8313022
/
本文档为【android获取正在运行的应用程序】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索