2011-07-26 13 views
5

My MainActivity ma lauchMode="singleTask"jak wymusić aktywność restartu z zamiarem

Teraz chcę rozpocząć działalność od notyfikacji ze specjalnymi danymi intencyjny. w MainActivity.onResume uzyskać dostęp do danych zamiarom ...

Problemem jest to: Gdy aktywność już istnieje, i klikam na powiadomienia aktywność przychodzi do nowej wiedzy, ale metoda onResume nie zadzwonił i nie mogę uzyskać dostępu dane intencyjne.

Próbowałem pod banderą FLAG_ACTIVITY_CLEAR_TASK, a to działa na plaster miodu, ale nie na piernik.

ten sposób zacząć działalność od zgłoszenia:

Intent intent = new Intent(); 
intent.setClass(this, MainActivity.class); 
intent.putExtra("triggerid", triggerid); 
startActivity(intent); 

Odpowiedz

9

onResume() jest zawsze nazywany jeżeli działalność nie jest na pierwszym planie. Jednak prawdopodobnie widzisz, że getIntent() zwraca intencję, która rozpoczęła działanie, a nie intencję, która została do niego ostatnio wysłana.

Aby to naprawić, należy zastąpić onNewIntent(). Otrzyma to nowy zamiar wysłany do niego. Następnie możesz zadzwonić pod numer setIntent() z otrzymanym intencją, co spowoduje, że getIntent() zwróci nowe intencje, gdy zostanie użyte w onResume().

Powiązane problemy