【问题标题】:Create launcher that kills all the previously opened apps创建杀死所有以前打开的应用程序的启动器
【发布时间】:2017-05-29 09:46:23
【问题描述】:

我有一个简单的启动器,可以在列表视图中列出所有应用程序。我只想要这个启动器中的一个功能;当单击列表视图中的某个项目(例如第 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);

            }
        });

【问题讨论】:

  • 我不认为你的非系统应用可以杀死其他应用。
  • 但是这个非系统应用(启动器)也是设备所有者应用和设备管理员。从这里,它不能决定其他应用程序的功能吗?

标签: android android-launcher device-policy-manager device-owner


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-20
    • 1970-01-01
    • 1970-01-01
    • 2019-02-25
    • 1970-01-01
    • 2018-06-29
    相关资源
    最近更新 更多