Oto mój problem.
Moja aktywność A jako normalna aktywność, teraz Aktywność A zadzwoń do Aktywności B z normalnym zamiarem teraz Aktywność B Zadzwoń Aktywność C. Teraz mam jedno działanie D, które deklaruję jako SingleInstance
android:launchMode="singleInstance"
Teraz, kiedy zaczynam moją aktywność D z działania C przez intencję, teraz zobaczmy jeden przypadek, w którym użytkownik jest na mojej aktywności D, teraz użytkownik naciska klawisz home, a teraz dociera do ekranu głównego mojego telefonu komórkowego z Androidem. Teraz użytkownik długie naciśnięcie klawisza Home i jest lista ostatnich aplikacji, w których użytkownik naciska moją aplikację, a moja aplikacja pokazuje Aktywność D, która jest aktualna, ale prawdziwy problem zaczyna się, gdy użytkownik naciśnie przycisk Wstecz, zostanie wysłany do ekranu głównego, którego nie spodziewałem się, powinien pokazać mi Aktywność C, która jest Dzwoniący do działania D.
Czy ktoś może pomóc w rozwiązaniu problemu z uruchomieniem aplikacji z listy ostatnich aplikacji.
3 odpowiedzi
Teraz, aby wyjść z tego problemu, robię następujące rzeczy.
Jak powiedziałem, aktywność D to pojedyncza instancja zadeklarowana w manifeście Androida, teraz aktywność D ma
onNewIntent(Intent intent) @Override
Teraz dodaję następujący kod w tej metodzie.
if ((intent.getFlags() & Intent.FLAG_ACTIVITY_LAUNCHED_FROM_HISTORY) != 0) {
Intent intent=new Intent(Activity D.this, Activity C.class);
intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);
startActivity(intentStart);
return;
}
Czytałeś to? http://developer.android.com/guide/topics/manifest /activity-element.html#lmode ???
- pojedyncze zadanie
System tworzy aktywność u źródła nowego zadania i kieruje do niego intencję. Jeśli jednak instancja działania już istnieje, system kieruje intencję do istniejącej instancji poprzez wywołanie metody onNewIntent() zamiast tworzenia nowej. - pojedyncza instancja
To samo co "singleTask", z tą różnicą, że system nie uruchamia żadnych innych działań w zadaniu przechowującym instancję. Czynność jest zawsze jedynym i jedynym członkiem swojego zadania.
To samo co "singleTask", z tą różnicą, że system nie uruchamia żadnych innych działań w zadaniu przechowującym instancję. Czynność jest zawsze jedynym i jedynym członkiem swojego zadania
Więc musisz usunąć android:launchMode="singleInstance"
z pliku manifestu lub zmienić przycisk zastępowania Wstecz działający w Aktywności D.
Podobne pytania
Nowe pytania
android
Android to mobilny system operacyjny Google, używany do programowania lub tworzenia urządzeń cyfrowych (smartfony, tablety, samochody, telewizory, Wear, Glass, IoT). W przypadku tematów związanych z Androidem użyj tagów specyficznych dla Androida, takich jak android-intent, android-activity, android-adapter itp. W przypadku pytań innych niż programowanie lub programowanie, ale związanych ze strukturą Androida, użyj tego linku: https: // android.stackexchange.com.