Pourquoi mon onResume être appelé deux fois?

Fondamentalement, ce est ce que je fais

1) Définir AlarmManager pour exécuter 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) Démarrer MyActivity de 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) Ont MyActivity allumer l'écran si ce n'est pas sur

@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);  
}  

Pour une raison quelconque, je remarque que la droite quand MyActivity est ouvert, c'est le flux va comme:

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

Je ne suis pas sûr de savoir pourquoi il ne fait pas de onPause tout de suite. Je remarque que cela se produit uniquement lorsque le dépistage est activé par les drapeaux. Personne ne sait pourquoi cela se produit? Est-il possible que ce comportement peut-il être évité?

  • Est-ce que votre activité de la force spécifique de l'orientation portrait ou paysage?
  • Le screenOrientation est la valeur portrait pour MyActivity dans le manifeste.
InformationsquelleAutor Huy T | 2013-04-16