2012-04-04 3 views
0

Мой вариант использования выглядит следующим образом:Android: Получить Intent несмотря вызова закончить() на предыдущей деятельности

В деятельности AI вызов:

startActivity(B); 
finish(); 

Сейчас в OnCreate из деятельности BI нужно знать деятельность, которая началась B, так что мне интересно, если в OnCreate (...) деятельности BI вызова:

getIntent(); 

бы я даже быть в состоянии получить Intent, который начал активность B или будет getIntent() в тот момент уже Ретур n null, потому что я завершил действие А сразу после вызова startActivity (B)?

+2

Вы можете передать название деятельности по caliing intent.putExtra ("AvtiVityName", "Activity A") – Nishant

+1

Woudln't не стоит попробовать? lol – Snicolas

+0

@Nishant: Спасибо, я дам этот выстрел – AgentKnopf

ответ

5

здесь

Intent intent = new Intent(A.this, B.class); 
intent.putExtra("activityStarted", "A"); 

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

String started = getIntent().getExtras().getString("activityStarted"); 
+0

то же, что и первый комментарий к OP, но самое легкое решение. –

+0

+1 & Принято, Спасибо, что делает эту работу. – AgentKnopf

1

В первом использовании активности ниже код, чтобы начать новый вид деятельности и способ перезапуска(), чтобы завершить деятельность ::

Intent intent = new Intent(ThisActivity.this, NextActivity.class); 
intent.putExtra("Key", "Value"); 
startActivity(intent); 

@Override 
    protected void onRestart() { 
     // TODO Auto-generated method stub 
     super.onRestart(); 
     finish(); 
    } 

In Second activity:

String started = getIntent().getStringExtras("Key"); 
+0

Спасибо за ваш ответ - но какова была бы цель вызова finish() в onRestart? Разве это не опасно? – AgentKnopf

+0

сделал это так, как вы хотите завершить текущую деятельность. поэтому я сделал, когда вы возвращаетесь с работы, и это не опасно –

+0

Спасибо Агарвал Шанкар, это полезно для моей системы меню –

Смежные вопросы