Почему мой onResume вызывается дважды?

По сути, это то, что я делаю

1) Установите AlarmManager для выполнения BroadcastReceiver (BCR)

Intent intent = new Intent(m_Context, BCR.class);  
intent.putExtras(extras);  
PendingIntent pendingIntent = PendingIntent.getBroadcast(m_Context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);  
AlarmManager am = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, StartTime, pendingIntent)  

2) Запустите MyActivity из BCR

@Override  
public void onReceive(Context context, Intent intent) {  
    Intent newIntent = new Intent(context, MyActivity.class);
    newIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);  
    context.startActivity(newIntent);  
}

3) Включите MyActivity для включения экрана, если он не включен

@Override  
public void onCreate(Bundle savedInstanceState) {  
    super.onCreate(savedInstanceState); 
    getWindow().addFlags(LayoutParams.FLAG_DISMISS_KEYGUARD);
    getWindow().addFlags(LayoutParams.FLAG_SHOW_WHEN_LOCKED);
    getWindow().addFlags(LayoutParams.FLAG_TURN_SCREEN_ON);
    setContentView(R.layout.myactivity);  
} 

@Overide  
protected void onNewIntent(Intent intent) {  
    super.onNewIntent(intent);  
}  

По какой-то причине я замечаю, что прямо при открытии MyActivity поток выглядит так:

onCreate / onNewIntent -> onResume -> onPause -> onResume

Я не уверен, почему это делает OnPause прямо сейчас. Я заметил, что это происходит только тогда, когда экраны включаются флагами. кто-нибудь знает, почему это произошло? Есть ли способ предотвратить такое поведение?

Ответы на вопрос(15)

Ваш ответ на вопрос