我想問問下面的行爲是否可行,如果是,我該如何實現它。我需要這種行爲的一個非常具體的原因。以與暫停時相同的方向恢復活動?
我有兩個活動,我會打電話給他們的活動A和活動B.現在讓我們來看看下面這個例子:
從活動A,在縱向,我啓動活動B(其中有一個固定的橫向) 。用戶作爲活動B在橫向上顯示,明顯地旋轉設備。活動B結束並且活動A被恢復。用戶將設備保持橫向方向,以便活動A的方向在剛恢復之後立即改變。
我想要的是避免活動A的方向在用戶返回時改變。我想在最後一個方向恢復活動A,並且之後只允許方向更改。
鎖定方向不是一個選項,因爲我想允許用戶隨時更改它。
android:configChanges =「orientation | screenSize」解決方案既不是一個選項,因爲我希望我的活動在方向更改後重新創建。
我有一個選項可以實現我想要的嗎?
謝謝!
編輯:我忘了說,保存當前方位破壞活動之前和恢復它再次創建時是不是一種選擇了。活動B完成後不應重新創建活動A.
編輯2:我現在在想,我意識到我可以從另一個角度重寫問題。
我想避免在活動B完成後重新開始活動A的重新創建。
Afaik,當設備方向發生變化時,會向ActivityThread發送一條消息(值爲RELAUNCH_ACTIVITY)。這導致活動A以新的屏幕方向重新創建。
我想避免活動重新啓動,因爲這將解決我的問題,並將保持最後的方向。
當您的活動重新創建時,您無法控制。您可能應該將您的活動狀態定義爲不同的類,並將其存儲/恢復到onSaveInstanceState/onCreate http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os。捆綁) 該州可以包括最後的方向 –
這就是我在其他情況下做的,但我不能在這個特定情況下。我需要保留當前活動A的實例。 –
你不能那樣做。 Android可以隨時殺死您的活動。你可以將不想被殺死的東西移動到服務中,但Android也可以殺死一個服務。 –