onNewIntent() вызывается в onResume() несколько раз
Моя проблема в том, что в функции onNewIntent() я запускаю новое намерение открыть приложение контактов и позволить пользователю завершить процесс создания нового контакта, но когда я пытаюсь выйти из приложения контактов и вернуться в свое приложение, кажется, что onNewIntent() вызывается снова, скорее всего, из-за этого блока кода.
@Override
public void onResume() {
super.onResume();
// Check to see that the Activity started due to an Android Beam
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(getIntent().getAction())) {
processIntent(getIntent());
}
}
Есть ли способ очистить намерения после вызова onNewIntent (вызываемого processIntent).
1 ответ
Решение
Похоже, вы могли бы просто позвонить setIntent()
в конце onNewIntent()
с новым Намерением, которое имеет значение Действие, которое не будет запускать дальнейшую обработку.
Вот пример, где новое намерение для действия установлено с действием "do_nothing":
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
//Do your current processing here:
if (NfcAdapter.ACTION_NDEF_DISCOVERED.equals(intent.getAction())) {
//process intent
//.........
// set intent for Activity to new Intent with "do_nothing" as action
Intent i = new Intent();
i.setAction("do_nothing");
setIntent(i);
}
}