我有一个在 AndroidManifest.xml 中声明的活动 (A):
<activity android:name="A" android:launchMode="singleTask"> </activity>
我想从应用程序中的其他活动启动 A 并将android:launchMode="singleTask"覆盖为android:launchMode="singleTop"
我怎样才能做到这一点?提前致谢。
我有一个在 AndroidManifest.xml 中声明的活动 (A):
<activity android:name="A" android:launchMode="singleTask"> </activity>
我想从应用程序中的其他活动启动 A 并将android:launchMode="singleTask"覆盖为android:launchMode="singleTop"
我怎样才能做到这一点?提前致谢。
对我有用的是完成当前活动并将开始活动发布到活动 ui 线程。
// get rid of this activity instance and start a new instance one
finish();
final Intent intent = new Intent(this, MyActivity.class);
runOnUiThread(new Runnable() {
@Override
public void run() {
startActivity(intent);
}
});
请参阅http://developer.android.com/reference/android/content/Intent.html#FLAG_ACTIVITY_NEW_TASK上的 FLAG_ACTIVITY_NEW_TASK 和 FLAG_ACTIVITY_MULTIPLE_TASK
如果您希望能够Activity
在现有任务中启动它,那么您需要将launchMode
back 更改为standard
or singleTop
。如果您将其设置为launchMode
,singleTask
那么您就是在告诉 Android 您不希望您Activity
被启动到现有任务中。能够覆盖它会适得其反。这就是重点launchMode
!