在列表视图中以编程方式终止应用程序进程

时间:2019-05-08 00:41:59

标签: android

我正在制作一个任务管理器应用程序,可以在其中终止正在运行的应用程序。

我能够获取所有已安装的应用程序并使用ListView进行显示。接下来要做的就是每当我单击列表视图中的一项应终止应用程序的项目时。

我在考虑是否可以在ListView项目中传递包名称,以便获取packageName并将其传递给我的terminateApp()方法。

这是我获取已安装应用程序列表的代码

public void installedApps(){
    List<PackageInfo> packageList = getPackageManager().getInstalledPackages(0);
    ListView lv = (ListView) findViewById(R.id.list_view);
    List<String> app_array= new ArrayList<String>();
    for (int i=0; i<packageList.size(); i++){
        PackageInfo packageInfo = packageList.get(i);
        if ((packageInfo.applicationInfo.flags & ApplicationInfo.FLAG_SYSTEM) == 0){
            String appName = packageInfo.applicationInfo.loadLabel(getPackageManager()).toString();
            app_array.add(appName);
        }
    }
    ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, app_array);
    lv.setAdapter(arrayAdapter);
} 

这就是我终止应用程序的方式

public void terminateApp(){
    ListView lv = (ListView) findViewById(R.id.list_view);
    lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            ActivityManager am = (ActivityManager) getSystemService(Activity.ACTIVITY_SERVICE);
            am.killBackgroundProcesses("com.app.example");

            Toast.makeText(Timer.this,"App has been terminated",Toast.LENGTH_SHORT).show();
        }
    });
}

0 个答案:

没有答案