【问题标题】:trying to kill an application试图杀死一个应用程序
【发布时间】:2012-11-13 19:26:25
【问题描述】:

我正在尝试编写一个进程来杀死在后台运行的应用程序,但这些应用程序仍然显示在最近的应用程序列表中并且没有死:

ActivityManager am = (ActivityManager) getApplicationContext().getSystemService(
                    Context.ACTIVITY_SERVICE);

            List<ActivityManager.RunningTaskInfo> processList = am.getRunningTasks(5);
for(int i=0; i<processList.size();i++){
                cProcess = processList.get(i).baseActivity.getPackageName();
                if(!allowedApps.contains(cProcess)){
                    am.killBackgroundProcesses(cProcess);
                    Log.v("","---------------------------------------------------------kill-----"+cProcess);
                }
            }

【问题讨论】:

  • 不要这样做。 Android 有独特的进程生命周期管理,试图对抗这种机制将是一场失败的战斗。
  • 不,我正在为零售客户构建启动器/信息亭模式,我们正在尝试保护平板电脑不访问某些第三方应用程序
  • 愚蠢的问题,但你的清单中有KILL_BACKGROUND_PROCESSES 权限吗?其次,可能有更好的方法来保护信息亭模式应用程序。编写一个没有第三方应用程序图标(或应用程序托盘)的“启动器”程序,例如。覆盖系统按钮(例如参见here)是另一种方法。杀死第三方任务并不能真正阻止人们访问它们,还有更好的方法来做到这一点。
  • 我确实拥有这些权限,并且我设法通过服务类对导航栏进行了皮肤处理。我们作为默认启动器运行。我想我只是想杀死当前在安装/初始启动时运行的所有应用程序,以确保没有任何东西已经在后台运行......或者至少杀死“最近的应用程序”按钮
  • 顺便说一句,我们正在运行三星 Galaxy Tab 2 10" android 4.0

标签: android android-activity


【解决方案1】:

对于应用程序/任务杀手的必要性存在不同的意见(简单地说)。我从来没有使用过,因为我从来没有看到需要。有些人可能会有不同的感觉。

我同意,“保护”零售模式设备的最佳方法是禁用允许某人运行第三方应用的部分 UI。

【讨论】:

    【解决方案2】:

    不,我正在为零售客户构建启动器/信息亭模式,我们正在尝试防止平板电脑访问某些第三方应用程序

    这是不可能的,以任何可靠的方式,除非通过自定义固件。

    【讨论】:

    • @CommonsWare 我觉得你一直在关注我关于我的黑客的帖子。我同意你的观点,但我们的客户不会让我们根设备,所以我设法创建了一个任务皮肤系统导航并通过“可运行的总黑客作业”强制用户进入密码屏幕以进入系统设置..
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-08
    • 1970-01-01
    • 1970-01-01
    • 2021-05-18
    • 1970-01-01
    • 2020-10-23
    • 1970-01-01
    相关资源
    最近更新 更多