Как узнать, какая активность была загружена - PullRequest
0 голосов
/ 16 февраля 2011

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

Ответы [ 2 ]

3 голосов
/ 16 февраля 2011

Вы можете справиться с этим через намеренные связки. В основном, в действии 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");

   }
}

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

1 голос
/ 16 февраля 2011

Если вы начнете свою деятельность 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();
}
...