2014-03-03 26 views
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); 

它一切正常,但问题是它的整个调用发射器和关闭过程两次。 这就好像进程仍在第二次运行时服务检查它是否正在运行。

任何想法如何解决这个问题?

+0

您不应该这样做,因为它是一种与Android不一致的设计模式,在这种模式下,系统而不是第三方开发人员管理流程生命周期。 –

+0

我知道。但它对我的应用程序至关重要 –

+0

它为什么至关重要?你为什么认为你应该做一些能够让Android开始一个进程的东西(如果它不存在的话),然后回过头来杀了它?无论如何,没有人能真正帮助你,因为你已经给出了两个独立的代码片段,而没有意识到连接它们的程序。 –

回答

0

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

相关问题