0

我有一个简单的启动器,可以在列表视图中列出所有应用程序。我只想要这个启动器中的一个功能;当单击列表视图中的某个项目(例如第 5 个项目)时,我想完全杀死所有以前打开的应用程序,然后打开那里登记的第 5 个应用程序。我不知道我应该寻找什么。我有启动器应用程序作为设备管理员和设备所有者,我认为它与DevicePolicyManager类有关。我也尝试了 finishActivity(int requestcode) 但它没有用。下面是 onItemClick() 监听器:

list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> av, View v, int pos,long id) {
                Intent i = manager.getLaunchIntentForPackage(apps.get(pos).name.toString());
                AppsListActivity.this.startActivity(i);

            }
        });
4

1 回答 1

0

为什么要在开始下一个应用程序的活动之前终止先前打开的应用程序的更多背景信息会有所帮助。如果我理解正确,它将永远只有一个应用程序被杀死,因为只有一个应用程序永远在运行,对吧?

如果您不需要完全杀死应用程序,那么暂停所有软件包setPackagesSuspended(如果您正在运行 API 24 或更高版本)会更加优雅,除了选定的软件包,当然还有您的启动器。暂停的包裹将无法开始活动。它的通知将被隐藏,它不会显示在最近的消息中,将无法显示 toasts 或对话框或响铃设备。如果您担心资源问题,是否有理由不相信 Android 可以在需要时管理资源并终止进程?

于 2017-06-07T21:02:35.410 回答