我希望我的應用程序在屏幕方向更改時重新建立藍牙連接。我有一個SavedState對象,它包含BT串行服務數據等,我可以使用onRetainNonConfigurationInstance()保存並使用getLastNonConfigurationInstance()進行恢復,但當屏幕方向更改時,我的TextView字段不再更新。使用onRetainNonConfigurationInstance()時,TextViews消失
我有兩個xml文件的佈局 - 一個在layout-port和一個在layout-land文件夾中分別重新格式化視圖。 TextView ID在兩個xml文件中都是相同的,只是它們的位置發生了變化。
如果我將覆蓋的onRetainNonConfigurationInstance()調用註釋掉,TextViews再次可見,但我當然不能再自動重新連接到BT設備。
當onDestroy()被調用時BT服務停止,因此每次屏幕更改時都必須重新建立。
重寫對onRestoreInstanceState()和onSaveInstanceState()的調用似乎沒有效果。
任何人都可以指出我正確的方向嗎?消失的視圖是永久的 - 即從一個方向改變並再次返回不會恢復TextView。
請勿使用onRetainNonConfigurationInstance(和get)。他們已被棄用。 –
你正在使用一項活動或碎片? –
然後...發佈您的一些ACtivity(或片段)代碼。 –