天天看點

擷取android 程序

在Android中擷取系統正在運作的程序方法是getRunningAppProcesses()。

我們首先通過ActivityManager _ActivityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);來擷取系統的全局狀态。

然後通過調用getRunningAppProcesses()方法就可以獲得系統正在運作的程序。

ActivityManager _ActivityManager = (ActivityManager) this.getSystemService(Context.ACTIVITY_SERVICE);

        List<RunningAppProcessInfo> list = _ActivityManager .getRunningAppProcesses();

        int i = list.size();

        Log.i("tag", String.valueOf(i));

        for (int j = 0; j < list.size(); j++) {

            Log.i("tag", list.get(j).processName);

        }

==========================================================

Android中關于任務和程序的概念有點混淆,網上看到一篇說得很好的文章,摘過來記錄一下~~~

http://bbs.sjtu.edu.cn/bbstcon,board,MobilePhone,reid,1288709685,file,M.1288709685.A.html

擷取最近運作的程式清單:

public void getTaskList() {  

    ImageButton ivIcon;  

    ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);  

    PackageManager pm = this.getPackageManager();  

    try {  

        List<RecentTaskInfo> list = am.getRecentTasks(64, 0);  

        llTaskBar.removeAllViews();  

        for (RecentTaskInfo ti : list) {  

            Intent intent = ti.baseIntent;  

            ResolveInfo resolveInfo = pm.resolveActivity(intent, 0);  

            if (resolveInfo != null) {  

                ivIcon = new ImageButton(this);  

                ivIcon.setImageDrawable(resolveInfo.loadIcon(pm));  

                ivIcon.setFocusable(true);  

                ivIcon.setClickable(true);  

                ivIcon.setEnabled(true);  

                ivIcon.setScaleType(ScaleType.CENTER);  

                ivIcon.setLayoutParams(new LinearLayout.LayoutParams(120, 120));  

                llTaskBar.addView(ivIcon);  

            }  

        }  

    } catch (SecurityException se) {  

        se.printStackTrace();  

    }  

}  

擷取正在運作的程序清單:

public void getRunningProcessList() {  

    List<ActivityManager.RunningAppProcessInfo> list = am.getRunningAppProcesses();  

    PackageManager pm = this.getApplicationContext().getPackageManager();  

    llTaskBar.removeAllViews();  

    for (ActivityManager.RunningAppProcessInfo pi : list) {  

        if (pm.getLaunchIntentForPackage(pi.processName) != null) {  

            try {  

                ApplicationInfo ai = pm.getApplicationInfo(pi.processName,   

                        PackageManager.GET_META_DATA);  

                if (ai != null) {  

                    ivIcon = new ImageButton(this);  

                    ivIcon.setImageDrawable(ai.loadIcon(pm));  

                    ivIcon.setFocusable(true);  

                    ivIcon.setClickable(true);  

                    ivIcon.setEnabled(true);  

                    ivIcon.setScaleType(ScaleType.CENTER);  

                    ivIcon.setLayoutParams(new LinearLayout.LayoutParams(120, 120));  

                    llTaskBar.addView(ivIcon);  

                }  

            } catch (NameNotFoundException e) {  

                e.printStackTrace();  

}