我有两个应用程序:应用程序A和应用程序B。在应用程序A中,我可以单击某个将启动意图并打开应用程序B的内容。此意图将把用户带到一个不是应用程序B的主要活动的活动,让我们称其为ViewFormsActivity。这是App A中点击的代码
Intent intent = new Intent("forms.ViewFormsActivity");
intent.putExtra("formID", formID);
intent.putExtra("siteID", siteID);
intent.putExtra("tab", 0);
intent.putExtra("prePopulatedURL", modifiedURL);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
startActivity(intent);
}
catch (ActivityNotFoundException e){
e.printStackTrace();
}这是应用程序B的清单
<activity
android:name=".ViewFormsActivity"
android:label="@string/title_activity_view_forms"
android:exported="true"
android:parentActivityName=".MainActivity"
android:theme="@style/AppThemeNoTitleBar">
<intent-filter>
<action android:name="forms.ViewFormsActivity"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>当App B尚未打开时,此代码可以工作。但是,如果我将应用程序B留在主活动上,切换到应用程序A,并执行单击;用户将被带到应用程序B的主活动页面。它似乎不会将用户带到ViewFormsActivity,即使我在意图中指定了它。有没有人知道原因,以及如何修复?
发布于 2018-07-10 02:53:30
添加intent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT)作为标志,并将android:launchMode="singleTop"添加到接收活动清单中。
发布于 2018-07-10 02:53:36
如果您的意图是从另一个应用程序打开一个活动,那么您也必须包含ComponentName。
Intent intent = new Intent();
intent.setComponentName(new ComponentName(PACKAGE_NAME, com.something.something.forms.ViewFormsActivity.class));
intent.putExtra("formID", formID);
intent.putExtra("siteID", siteID);
intent.putExtra("tab", 0);
intent.putExtra("prePopulatedURL", modifiedURL);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
try {
startActivity(intent);
} catch (ActivityNotFoundException e){
e.printStackTrace();
}发布于 2018-07-10 02:59:02
我通过将flag_activity_clear_top添加到App A的intent中解决了这个问题。
Intent intent = new Intent("forms.ViewFormsActivity");
intent.putExtra("formID", formID);
intent.putExtra("siteID", siteID);
intent.putExtra("tab", 0);
intent.putExtra("prePopulatedURL", modifiedURL);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK);
try {
startActivity(intent);
}
catch (ActivityNotFoundException e){
e.printStackTrace();
}https://stackoverflow.com/questions/51252032
复制相似问题