0
我设置来检查,如果一个特定的过程在时间间隔运行使用服务:为什么它杀了两次应用程序?
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开始一个进程的东西(如果它不存在的话),然后回过头来杀了它?无论如何,没有人能真正帮助你,因为你已经给出了两个独立的代码片段,而没有意识到连接它们的程序。 –