2011-07-15 11 views
7

Moja aplikacja ma trzy rodzaje aktywności, powiedzmy: A -> B-> C.Jedna instancja działania

Aktywność A jest wywoływana z innej działalności poprzez startActivityForResult(). Aktywności B i C są również nazywane podobnie. Muszę również wywołać aktywność A z paska powiadomień (jeśli jest jakieś specjalne powiadomienie).

Teraz, jeśli obecnie jestem w działalności B lub C, i klikam na pasku powiadomień, a wywołuję działanie A, aplikacja przechodzi tylko do działania A, a dane wprowadzane przez działania B lub C nie są trwałe.

Nie chcę takiego zachowania. Chcę, jeśli kliknę Powiadomienie, powinien on przekierować tylko do bieżącego ekranu. Czy ktoś może pomóc. (Wspomniałem o activity:launchMode jako SingleTask).

Odpowiedz

0

Możesz być w stanie wykorzystać zmienną statyczną w celu ustalenia innych danych. Nie jestem jednak pewien, ile i jakiego rodzaju danych chcesz uzyskać dostęp z innych działań.

Pisząc do trwałej pamięci masowej, może się również udać, ale znowu - niejasność przechowywanych danych i trudności z odpowiedzią. Po prostu napisz/odczytaj trwałe przechowywanie w metodzie standardowej każdego działania (lub stwórz klasę super aktywności i rozszerz ją dla A, B i C.

+0

To też nie zadziałało dla mnie. Przepraszamy za tak długi czas w odpowiedzi – Sachchidanand

+0

trwałe przechowywanie nie działa? – CrackerJack9

+0

Nie, to nie działa, więc zmieniliśmy projekt naszej aplikacji W każdy sposób Dziękuję tak dużo – Sachchidanand

19

Korzystanie z android:launchMode="singleTask" jest prawdopodobnie najlepszym rozwiązaniem, ponieważ nie będzie odtworzyć działania, jeśli jest już uruchomione. Po prostu dodaj go do działania w swoim AndroidManifest.xml i powinieneś wszystko ustawić.

<activity 
    android:name=".MyActivity" 
    android:label="@string/app_name" 
    android:launchMode="singleTask" 
    > 
    <intent-filter> 
     <action android:name="android.intent.action.MAIN" /> 
     <category android:name="android.intent.category.LAUNCHER" /> 
    </intent-filter> 
</activity> 

Oto kolejne pytanie, które mogą być użyteczne: Android singleTask or singleInstance launch mode?

+0

nie, to nie działa. Próbowałem dużo, ale wspomniałem tylko o jednym zadaniu, is not workin – Sachchidanand

Powiązane problemy