2011-02-16 5 views
0

У меня 3 мероприятия. A, B и C. От A до C и B до C. Как я могу из Activity C узнать, какая активность была загружена ранее и отнесена к этой Деятельности.Как узнать, какая активность была загружена

+1

Вы можете отправить некоторое значение как 'Bundle', чтобы определить это. –

ответ

3

Вы можете справиться с этим через целые комплекты. В основном в деятельности A или B запускает активность C следующим образом:

Intent launchIntent = new Intent(this, ActivityC.class); 
launchIntent.putExtra("originActivity", this.getClass().getName()); 

В активности C, вы извлекаете его, как

public class ActivityC extends Activity{ 
    onCreate(...){ 
     Intent callingIntent = getIntent(); 

     String originActivity = callingIntent.getStringExtra("originActivity"); 

    } 
} 

Теперь я передал имя активности как строка, вы можете включить его в некоторых более удобный способ, используя константы или что-то в этом роде. Вы можете посмотреть его here.

1

Если вы начинаете вашу деятельность C с startActivityForResult вместо startActivity, у вас есть доступ к вызывающему деятельности:

Начало активности C, как это:

Intent intent = new Intent(this, C.class); 
int requestCode = 1; // Or some other integer 
startActivityForResult(intent, requestCode); 

в активность C:

onCreate(...) { 
    String callingClassName = getCallingActivity().getClass().getSimpleName(); 
} 
+0

Да, это был бы другой подход, но только если активность C предназначена для получения некоторого результата для предыдущих ... – Juri

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