2012-03-22 16 views

Odpowiedz

3

Być może trzeba będzie dokładniej opisać przypadek użycia.

Zapoznaj się z Activity Lifecycle.

Zarówno onResume() i onStart() będzie uzyskać wywołana, gdy chodzi o aktywność na pierwszym planie.

Edytuj:onRestart()?

+0

Potrzebuję dokładnie tego zdarzenia, gdy aplikacja pochodzi z tła na pierwszym planie. To prawda, że ​​onResume() i onStart() są w tym przypadku wywoływane, ale nie tylko w tym przypadku. To jest problem. Jak mogę odróżnić przypadki? Jak mogę powiedzieć, czy aplikacja wraca z tła na pierwszy plan, czy aktywność została ponownie uruchomiona? – strongmayer

2

Nie jestem do końca pewien, co chce zrobić, ale jeśli chcesz, aby odróżnić te 2 sekwencje:

  • onCreate(), onStart(), onResume()
  • onPause(), onResume()

można ustawić flagę onPause() i sprawdzić flagę onResume().

3

I robi coś takiego, w BaseActivity

w onResume sprawdzasz enterCount jest równa 0, a następnie dodać enterCount w OnPause I opóźnić enterCount do zmniejszenia 300ms i wydaje się dobrze, gdy onCreate ISN opóźnienie dwa długie, lub możemy zrobić coś w sprawie Utwórz, aby uniknąć po raz pierwszy.

protected void onResume(){ 
     int enterCount=GlobalManager.getInstance().getEnterCount(); 
     if(enterCount==0){ 
      //do some thing for first enter 
     } 
     GlobalManager.getInstance().increaseEnterCount(); 
} 

protected void onPause(){ 
     GlobalManager.getInstance().decreaseEnterCountDelay(); 

} 
+0

Jakie jest Twoje uzasadnienie? Możesz wytłumaczyć? –

Powiązane problemy