我有一个闹钟应用程序,它使用闹钟管理器和广播接收器。该应用程序是一个单一的活动和 4 个片段。当警报响起时,onReceive 方法向主活动发送一个意图,主活动在 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();
}