Как начать действие с другого действия, но с определенным намерением - из OnNewIntent - PullRequest
0 голосов
/ 22 января 2012

Хорошо ... так что, думаю, название немного сбивает с толку.поэтому я объясню: у меня есть приложение NFC, которое успешно обрабатывает NDEF_DISCOVERED в действии A., затем запускается новое действие (B).В этом новом упражнении (B) я хочу иметь возможность перехватить другой тег и позволить действию A обрабатывать его, как и раньше, поэтому я использую OnNewIntent, чтобы получить это намерение тега, и хочу начать задание A. Но если я вызываю startActivity (myIntent)) с традиционным myIntent = new Intent (this, A.class), затем с этим myIntent запускается действие A, и я хочу, чтобы действие A обрабатывало намерение тега, которое было «поймано» в действии B ..

howмогу я это сделать?

Спасибо.

Ответы [ 2 ]

1 голос
/ 23 января 2012

Вы должны иметь возможность добавить намерение тега в упражнении B в качестве дополнительного к традиционному намерению с помощью myintent.addExtra ("tagkey", tagIntent) .Поскольку Intent реализует Parcelable, он будет добавлен как дополнительный Parcelable.Затем в onCreate () упражнения A поместите что-то вроде:

Intent intent = getIntent();
if (intent.hasExtra("tagkey")) {
    setIntent(intent.getParcelableExtra("tagkey")
}

Замените строку «tagkey» тем, что наиболее соответствует вашему собственному коду.Вы также можете поместить подобный фрагмент в onNewIntent ().

0 голосов
/ 11 февраля 2012

Если тип сообщения NDEF достаточно специфичен, так что ему будет соответствовать только ваше действие A, вы можете установить 'android: launchMode = "singleTask"' в разделе действий вашего манифеста Android для этого действия.Затем действие B будет закрыто при сканировании нового тега с тем же типом сообщения NDEF.

...