2016-05-25 3 views
1

В моем приложении есть 3 мероприятия и их последовательность вызова, как это ...Как проверить, существует ли моя предыдущая деятельность?

Всплеск активности ---> Панель активности ---> Список активности

Если он идет, как это тогда, если я нажмите кнопку «Назад» в списке «Активность списка», после чего она будет следовать обратной последовательности выше.

Существует одно требование, в котором пользователь может перейти к активности списка непосредственно из всплеска (пропуская деятельность панели мониторинга). Теперь, когда пользователь нажимает кнопку «Активность в списке», я не хочу показывать активность панели мониторинга, которой нет в разделе «Активность» ,

Так что, пожалуйста, помогите мне с наилучшим подходом.

ответ

1

передавайте булев через умысел для перехода к списку активности от любого из остальные. Используя onBackPressed, проверьте, является ли логическое значение true или false для пропуска активности панели мониторинга. Затем, если true, добавьте новое намерение для загрузки активности панели и финиша(); по активности списка.

+0

Простой материал .... но не мог думать об этом ... Спасибо Geo! – user2094075

+0

Проходит ли истина или ложь в намерении дополнительно, даст в будущем правильное понимание? – Srinivasan

+0

Если комментирование до нуля, то обязательно. – Geoff

0

вы можете непосредственно перейти к брызгам из списка действий при переходе на

ListActivity из Dashboard Activity вызова finish()

Intent i = new Intent(DashboardActivity.this,ListActivity); 
startActivtiy(i); 
finish(); 
0

Вы должны передать название класса в качестве замысла дополнительно от Splash и DashboardActiviy.

В операции со списком вы должны получить имя класса, используя getIntent().

Когда пользователь нажимает кнопку «Назад», вам необходимо проверить имя класса на основании того, что вы можете принять решение.

if(name.equalIgnorecase(DashboardActivit.class.getSimpleName()){ 
     //Add your intent 
    }else{ 
     // 
    } 

Это может дать вам определенное решение you.Give попробовать

0

Начните внутреннюю деятельность с startAcvitiyForResult

Intent i = new Intent(this, Activity_2.class); 
startActivityForResult(i, 1); 

и в своей внутренней деятельности

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

Вы можете также делайте что-то в своей внешней деятельности, как вам нравится, когда ваша внутренняя деятельность завершается s

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 

    if (requestCode == 1) { 
     if(resultCode == 1){ 
      Log.i("TEST", "RESULT_OK"); 
     } 
     else { 
      return; 
     } 
    } 
} 
Смежные вопросы