У меня есть приложение для будильника, которое использует диспетчер аварийных сигналов и широковещательный приемник. Приложение представляет собой одно действие и 4 фрагмента. Когда сигнал тревоги отключается, метод onReceive отправляет намерение в основное действие, основное действие получает это намерение в методе onNewIntent, а затем переходит к правильному фрагменту. Все работает нормально, за исключением случаев, когда будильник отключается после закрытия приложения.onNewIntent не вызван при перезагрузке
После того, как я уничтожаю приложение, сигнал тревоги по-прежнему отключается, и намерение от широковещательного приемника срабатывает, но метод onNewIntent действительно улавливает намерение и перемещает приложение в правильный фрагмент.
Вот Intent, который находится в классе приемника широковещательной передачи, который перемещается к основному виду деятельности
Intent alarmIntent = new Intent(context, ClockActivity.class);
alarmIntent.addFlags(Intent.FLAG_FROM_BACKGROUND);
alarmIntent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
alarmIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
alarmIntent.putExtra("Alarm Name", receivedAlarm.getmName());
context.startActivity(alarmIntent);
Вот мой метод onNewIntent в моей основной деятельности, не вызывался, когда сигнал тревоги вызывается, когда приложение закрыто.
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
PhraseFragment phraseFragment = new PhraseFragment();
String activeName = intent.getStringExtra("Alarm Name");
Bundle args = new Bundle();
args.putString("activeName", activeName);
phraseFragment.setArguments(args);
getFragmentManager().beginTransaction()
.replace(R.id.container, phraseFragment)
.addToBackStack("phrase")
.commit();
}
http://stackoverflow.com/questions/8800006/onnewintent-is-not-called-in-android-tabs – grebulon