2014-03-03 57 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權限的情況下執行此操作。

相關問題