【问题标题】:why does it kill the app twice?为什么它会杀死应用程序两次?
【发布时间】:2014-03-03 12:13:48
【问题描述】:

我设置了一个服务,通过以下方式检查特定进程是否在时间间隔内运行:

appsList = am.getRunningAppProcesses();

我将其名称和 ID 保存为:

s = pross.processName;
i=pross.pid;

我使用以下命令启动默认启动器:

Intent intent = null;
        final PackageManager pManager = context.getPackageManager();
        for (final ResolveInfo resolveInfo:pManager.queryIntentActivities(new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME),pManager.MATCH_DEFAULT_ONLY ))
        {
            if(!context.getPackageName().equals(resolveInfo.activityInfo.packageName))
            {
                intent = new Intent(Intent.ACTION_MAIN).addCategory(Intent.CATEGORY_HOME).setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                intent.setClassName(resolveInfo.activityInfo.packageName, resolveInfo.activityInfo.name);
                break;
            }
        }
        context.startActivity(intent);

比杀死进程:

mActivityManager.killBackgroundProcesses(s);

一切正常,但问题是它会调用启动器并关闭进程两次。 就像服务第二次检查它是否正在运行时,该进程仍在运行。

知道如何解决这个问题吗?

【问题讨论】:

  • 你不应该一开始就这样做,因为它是一种与 Android 不一致的设计模式,系统而不是第三方开发人员管理进程生命周期。
  • 我知道。但这对我的应用至关重要
  • 为什么重要?为什么你认为你应该做一些导致Android启动一个进程(如果它不存在的话),然后转身杀死它?无论如何,没有人能真正提供帮助,因为您给出了两段孤立的代码,而对连接它们的程序一无所知。

标签: android process kill


【解决方案1】:

我认为我们不能杀死任何其他进程。系统不允许在没有 root 访问权限的情况下执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-10-28
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多