понял это.Вы должны использовать launchMode="singleTask"
в своем манифесте для конкретного Activity
, на который вы хотите переключиться обратно.В соответствии с документами для разработчиков это возвращает к этому конкретному Activity
, если он существует.
Итак, в моем Манифесте у меня есть:
<activity
android:name=".MainTabsActivity"
android:launchMode="singleTask"
android:label="@string/app_name"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
Тогда,в любом Activity
, где вы хотите вернуться к этому TabActivity
, просто позвоните обычному Intent
.Вы также можете использовать putExtra()
, чтобы сообщить TabActivity
о переходе на новую вкладку.
В подгруппе действий:
Intent mainTabsSearchIntent = new Intent(this, MainTabsActivity.class);
mainTabsSearchIntent.putExtra("tabval", 0);
startActivity(mainTabsSearchIntent);
Это либо запустит новую MainTabsActivity
, еслистек не имеет ни одного, или переключается обратно на старый экземпляр из-за параметра launchMode="singleTask"
.
Чтобы обеспечить возможность переключения вкладок, переопределите onNewIntent(Intent intent)
в вашем основном TabActivity
следующим образом:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
Log.d(MyApplication.TAG, "Bringing this Activity back!");
Bundle extras = intent.getExtras();
if (extras != null) {
tabHost.setCurrentTab(extras.getInt("tabval"));
Log.d(MyApplication.TAG, "Switching to tab " + extras.getInt("tabval"));
}
}
Надеюсь, это поможет кому-то, у кого похожая проблема.