我有一个在AndroidManifest.xml中声明的活动(A):
<activity android:name="A" android:launchMode="singleTask"> </activity>
我想从应用程序中的其他活动启动A并覆盖android:launchMode="singleTask"到android:launch Mode="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
如果希望能够在现有任务中启动该Activity
,则需要将launchMode
更改回standard
或singleTop
。如果你将launchMode
设置为singleTask
,那么你就是在告诉Android,你不希望你的Activity
被启动到现有任务中。能够推翻这一点将适得其反。这就是launchMode
的全部意义!