Używam działania singleTop, aby otrzymywać intencje z okna wyszukiwania za pośrednictwem onNewIntent()
.
Zauważyłem, że onPause()
jest to wywoływane przed onNewIntent()
, a potem wywołuje onResume()
. Naocznie:
- zainicjowano okno dialogowe wyszukiwania
- zamiar wyszukiwania wywołał aktywność
onPause()
onNewIntent()
onResume()
Problem w tym, że mam zarejestrowanych słuchaczy, onResume()
którzy są usuwani onPause()
, ale są potrzebni w onNewIntent()
rozmowie. Czy istnieje standardowy sposób udostępniania tych słuchaczy?
źródło
Intent
doonResume()
Twoja aktywność będzie zapewne próbować wykonać wyszukiwać za każdym razem, to CV, prawdopodobnie nie zachowanie chcesz.Uwaga: Wywołanie metody cyklu życia z innej nie jest dobrą praktyką. W poniższym przykładzie starałem się, aby Twój onNewIntent był zawsze wywoływany niezależnie od typu Twojej Aktywności.
OnNewIntent () zawsze jest wywoływana dla działań singleTop / Task z wyjątkiem pierwszego razu, gdy działanie jest tworzone. W tym czasie onCreate jest nazywany dostarczaniem rozwiązania dla kilku zapytań zadawanych w tym wątku.
Możesz wywołać onNewIntent zawsze, umieszczając go w metodzie onCreate, takiej jak
źródło