我目前有兩個獨立的應用程序,兩者都執行獨立的任務,但是在有限的時間裏,當我需要一個應用程序使用另一個應用程序時,如果有的話。活動生命週期 - startActivity()附加項目
所以我用一個函數來檢查所需的應用程序存在:
public static boolean isIntentAvailable(Context context, String action)
{
final PackageManager packageManager = context.getPackageManager();
final Intent intent = new Intent(action);
List<ResolveInfo> list = packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
return list.size() > 0;
}
如果是這樣,那麼我用下面用一個額外的啓動活動上有:
if (isIntentAvailable(ListPOI.this, "com.me.myapp.MY_MAP"))
{
Intent i = new Intent("com.me.myapp.MY_MAP");
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
i.putExtra("place", true);
startActivity(i);
}
的setFlags意味着如果用戶按回家,他們回到第一個應用程序,它打開,它不打開這裏調用的第二個應用程序。
這一切都工作正常,第一次。然而,第二次調用此應用程序後,第二個應用程序會繼續運行,因此它不會接收已通過的「額外」應用程序,如何確保獲得額外的應用程序?
我可以想到兩件事,我不會將它作爲答案發布,因爲我不知道: 1)如何迫使活動完成onStop 2)獲取onResume而不是onCreate的意圖? – blindstuff 2010-10-21 20:49:41
這工作 - 從來沒有在onResume() – Scoobler 2010-10-21 22:17:29