2012-06-07 2 views
0

Я приложение с 3 деятельностиAndroid Жизненный цикл активности конфликт

LoginActivity 
ActivityA 
ActivityB 

Пользователь начинает с LoginActivity. После успешного входа в систему он отправляется в ActivityA. ActivityA вызывает ActivityB, используя startActivityForResult, и обрабатывает ответ, используя onActivityResult.

Если пользователь нажимает кнопку «Home» от ActivityA или ActivityB и приложение запускается снова, я хочу взять пользователя обратно LoginActivity

Я пытался играть с onRestart и onResume. Оба они называются, когда ActivityA повторно инициализируется через домашний экран или onActivityResult (когда пользователь возвращается из ActivityB).

Как я могу реализовать это требование?

PS: Я проверил похожие вопросы на SO и не нашел то, что соответствует моему требованию.

Спасибо.

ответ

0

Я перенаправляю вас на этот вопрос here. Я думаю, он должен ответить на ваш вопрос.

0

Когда вы объявляете свои намерения для запуска активности A и деятельности B, попробуйте использовать флаг nohistory, например.

Intent intent = new Intent(this, ActivityA.class); 

// do not keep this intent in history 
intent.setFlags(Intent.FLAG_ACTIVITY_NO_HISTORY); 

startActivity(intent); 

Затем, когда вы возобновите работу, он вернется к активности входа.

+0

Это не решает проблему ОП спросил о ... –

0

Попробуйте записать это в AndroidManifest файла для каждого вида деятельности

<activity android:launchMode="singleTask" 
     android:name=".LoginActivity" /> 

<activity android:launchMode="singleTask" 
     android:name=".ActivityA" /> 

<activity android:launchMode="singleTask" 
     android:name=".ActivityB" />