如何获取Anrdroid中当前运行的APP的列表

时间:2016-06-29 11:19:10

标签: android

我想使用ActivityManager获取当前APP的列表,并将最新的进程名称返回给系统剪贴板。就像这样

 protected void onStart() {
        super.onStart();
        Amanager=(ActivityManager)this.getSystemService(ACTIVITY_SERVICE);
        ActivityManager.RunningAppProcessInfo App=null;
        List<ActivityManager.RunningAppProcessInfo> RunningTasks;
        try {
            RunningTasks = Amanager.getRunningAppProcesses();
            App = RunningTasks.get(0);
        }catch (final Exception e){Log.d(TAG, "List ERROR");}
        if(App!=null) {
            String result =App.processName;
            contentText.setText(result);;
            Clipboard.setText(result);
        }else {
            Log.d(TAG, "COMPONENT ERROR");
        }
    }

但是当在模拟器上运行时,发生了一些错误:

  

java.lang.RuntimeException:无法启动活动ComponentInfo {//绝对地址}:

2 个答案:

答案 0 :(得分:2)

试试这个

function checkNested(obj /*, level1, level2, ... levelN*/) {
  var args = Array.prototype.slice.call(arguments, 1);

  for (var i = 0; i < args.length; i++) {
    if (!obj || !obj.hasOwnProperty(args[i])) {
      return false;
    }
  obj = obj[args[i]];
 }
  return true;
}

var test = {level1:{level2:{level3:'level3'}} };

checkNested(test, 'level1', 'level2', 'level3'); // true
checkNested(test, 'level1', 'level2', 'foo'); // false

这可能有助于你

答案 1 :(得分:2)

你的代码非常好。您收到此异常是因为contentText为空。确保您正确引用它。