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開始一個進程的東西(如果它不存在的話),然後回過頭來殺了它?無論如何,沒有人能真正幫助你,因爲你已經給出了兩個獨立的代碼片段,而沒有意識到連接它們的程序。 –