Запустить активность в родительской активности
Я хотел бы запустить действие (TargetActivity) полностью назад от некоторого действия (MainOptionActivity), чтобы, если пользователь нажал кнопку "Назад" из TargetActivity, оно вернулось к MainOptionActivity.
Сейчас он делает следующее
SplashScreenActivity -> MainOptionActivity -> SomeActivity -> ... -> SomeService -> TargetActivity
Но я хочу сделать это, что отбросило бы все действия / услуги после MainOptionActivity
SplashScreenActivity -> MainOptionActivity -> TargetActivity
Спасибо!
PS Приложение работает с API 15, parentActivityName не поддерживается
2 ответа
Вы можете объявить родителя действия из манифеста следующим образом:
<activity
android:name=".activities.TargetActivity"
android:parentActivityName=".activities.MainOptionActivity" >
<!-- Parent activity meta-data to support 4.0 and lower -->
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".activities.MainOptionActivity" />
</activity>
ОБНОВИТЬ:
Я знаю, что это не лучший способ, но как насчет отмены вызова кнопки возврата?
@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
Log.d("MainActivity", "onKeyDown");
if (keyCode == KeyEvent.KEYCODE_BACK)
{
Intent i = new Intent(getApplicationContext(), TargetActivity.class);
MainOptionActivity.this.finish();
startActivity(i);
}
else
{
return super.onKeyDown(keyCode, event);
}
}
Попробуйте сделать это:
для каждого действия, к которому вы не хотите возвращаться при нажатии кнопки "назад", добавьте этот бит кода в намерение, которое вы используете для вызова действия:
Intent intent = new Intent(this, YourActivity.class);
contactIntent.addFlags(Intent.FLAG_ACTIVITY_NO_HISTORY);
Этот флаг говорит вашей активности не хранить историю в стеке действий.