![](/img/trans.png)
[英]Activities with singleTask launch mode and their position in the back stack
[英]Maintaining standard application Activity back stack state in Android (using singleTask launch mode)
我無法找到如何在開發中維護我的Android應用程序的狀態。
只是為了澄清,我不是在談論維護活動狀態(即跟蹤特定活動的文本框值,復選框等)。
比方說,我的應用程序有兩個活動A
和B
當我啟動我的應用程序時,它需要我進行活動A
,按下它上面的按鈕將我帶到活動B
此時,我按下手機上的主頁按鈕返回主Android UI並退出我的應用程序。 但是,如果我選擇再次運行我的應用程序,它應該帶我去活動B
,這是我在按下主頁按鈕之前離開的地方,但它轉而帶我去活動A
有誰知道我怎么能糾正這個?
(如果你需要知道,我正在使用三星Vibrant)
“但是,如果我選擇再次運行我的應用程序,它應該帶我去活動B,這是我在按下主頁按鈕之前離開的地方,但是它將我帶到活動A.”
是的,它應該。 如果不是,您已在應用中做了一些事情來告訴平台修改其行為。 (以ApiDemos為例,它使用標准行為,這聽起來就像你所描述的那樣。)
需要注意的事項:
你在想象有一種叫做“應用程序”的東西,但那是一種錯覺。 您的應用程序只是活動,服務,接收器等的集合。
如果您查看清單中的intent-filter
標記,您會看到主屏幕中的每個圖標都與這樣的過濾器相關聯:
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
您可以在兩個活動上放置相同的XML塊,並且您將在主屏幕中獲得兩個圖標,一個始終啟動活動A,另一個始終啟動活動B.
您可能想要做的是創建一個主活動,該活動根據共享狀態啟動其他活動之一。
至於實際存儲共享狀態的位置,這取決於您的狀態有多復雜。 這是一個很好的起點: http : //developer.android.com/guide/topics/data/data-storage.html
據我所知,您想要啟動應用程序的問題,每次都會發生不同的事情,具體取決於您上次離開的位置。 http://developer.android.com/reference/android/app/Application.ActivityLifecycleCallbacks.html活動生命周期在鏈接中。 你的onActivityDestroyed方法需要以某種方式持久保存當前狀態,而oncreate需要將其恢復。 持久性可以通過共享首選項實現,存儲在文件,數據庫或網絡上http://developer.android.com/guide/topics/data/data-storage.html這種不可預測的行為可能會導致最終用戶混淆執行不力,所以要善意判斷。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.