2015-04-20 3 views
0

Как вы можете видеть на следующем изображении, у меня есть 2 действия.Переключение между действиями в Android и петле

«Активность 1» начинает «деятельность 2».

На шаге 3, когда я нажимаю кнопку «назад», появляется «активность 2»! Фактически бесконечный цикл происходит, когда я нажимаю кнопку в действии (между шагами 2 и 3) !!!

Я предпочитаю не переопределять BACK BUTTON, но, как мне кажется, мне нужно !!!

как я могу это исправить?

# ОБНОВЛЕНИЕ:

Шаг 1:

Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class); 
Game_Activity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(Game_Activity); 

Шаг 2:

@Override 
public void onBackPressed() 
{ 
     //Return to Menu Activity 
     Intent Sec_Activity = new Intent(SecondActivity.this, FirstActivity.class); 
     startActivity(Sec_Activity); 
} 

Шаг 3:

@Override 
public void onBackPressed() 
{ 
    finish(); 
} 

enter image description here

+0

вопрос будет действительно полезно иметь некоторый код.Трудно отлаживать без реального кода и просто изображение;) – ArchiFloyd

+0

На шаге 2 вы заканчиваете второе действие или вызываете startActivity (намерение)? – Raghavendra

+1

finish() activity 2 onbackpress() –

ответ

0

Вызов Activity1 к Activity2

Intent intent = new Intent(Activity1.this, Activity2.class); 
startActivity(intent); 

В Activity2

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 
    finish(); 
} 
+0

Она не хочет переопределять подкладку! – Strider

+0

на самом деле вам не нужно переопределять кнопку «Назад» - поведение по умолчанию завершает текущую активность. это не решает вопрос, так как она использует переупорядочение перед флагом фронта. – Raanan

+0

Не работает! – Jessica

1

Снимите Переупорядочить на передней флаг, это не нужно ... при возобновлении если приложение не был уничтожен ток активность возобновляется. Это восстановит нормальное поведение кнопки обратной связи и порядок активности.

Если вы хотите сохранить текущее состояние приложения, даже если он удален из памяти смотрите в http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle)

это будет хорошей отправной точкой.

+0

Я удалил 'FLAG_ACTIVITY_REORDER_TO_FRONT', но активность не возобновилась! – Jessica

+0

@Jessica Я предлагаю вам обновить вопрос с более подробной информацией о том, что вы делаете ... возобновление текущей деятельности является основной особенностью Android. Может быть, вы определили некоторые флаги относительно 2-й активности в манифесте? или вы что-то называете? – Raanan

+0

Вам необходимо удалить флаг FLAG_ACTIVITY_REORDER_TO_FRONT, а также удалить переопределенные onBackPressed, которые оба они не нужны. – Raanan

0

В своем первом Activity шаге 1:

Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class); 
Game_Activity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(Game_Activity); 
finish(); 

Добавить отделка после Intent

+0

Я пробовал это раньше, но не работал! – Jessica

0

активность один

Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class); 
Game_Activity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(Game_Activity); 

активность два

public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 

} 

ИЛИ

активность один

Intent Game_Activity = new Intent(FirstActivity.this, SecondActivity.class); 
Game_Activity.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT); 
startActivity(Game_Activity); 
finish(); 

активность два

public void onBackPressed() { 
Intent i= new Intent(secondActivity.this, FirsActivity.class); 
    startActivity(i); 
    finish() 
} 
Смежные вопросы