我目前有两个独立的应用程序,两者都执行独立的任务,但是在有限的时间里,当我需要一个应用程序使用另一个应用程序时,如果有的话。活动生命周期 - 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