2012-10-18 81 views

回答

0

基本問題是,配置更改默認重新創建活動,所以如果你在活動中進行一些遞歸管理,你必須記住這一點。

有兩個相反的解決方案:通過添加的配置更改你將手動處理活動列表的清單屬性android:configChanges,例如"keyboardHidden|orientation|screenSize"上配置改變活性的

  1. 禁用娛樂(因爲screenSize需要Adnroid 3.1)。在這種情況下,您可以通過覆蓋方法onConfigurationChanged來處理配置更改。

  2. 通過重寫方法onSaveInstanceState來處理活動的娛樂活動,並在活動包內部保存活動狀態。然後在onCreate設置參數savedInstanceState(非空)時,您應該從該包中恢復狀態(恢復閃光狀態)。

方法的選擇取決於您的活動設計。

0

android:configChanges="keyboardHidden|orientation"加入您在android清單文件中的活動。

+0

我已經這樣做了。按鈕點擊 –

+0

:我會送你我的代碼 如果(isLighOn){ \t \t \t \t \t Log.i( 「信息」, 「火炬是關掉!」); \t \t \t \t \t p.setFlashMode(Parameters.FLASH_MODE_OFF); \t \t \t \t \t camera.setParameters(p); \t \t \t \t \t相機。stopPreview(); \t \t \t \t \t isLighOn = false; \t \t \t \t}其他{ \t \t \t \t \t Log.i( 「信息」, 「火炬是打開!」); \t \t \t \t \t p.setFlashMode(Parameters.FLASH_MODE_TORCH); \t \t \t \t \t camera.setParameters(p); \t \t \t \t \t camera.startPreview(); \t \t \t \t \t isLighOn = true; \t \t \t \t} –

0

當您改變方向時,完整的活動被破壞,並且一個新的活動被創建。所以發生什麼事情是活動失去了閃光燈的當前狀態,並且它關閉。

嘗試禁用清單中的方向更改。並將當前的flsh狀態保存在Onstop中,並重置OnStart中的狀態。

這將爲你工作,我相信。

+0

不適用於我可以向我發送我的代碼嗎? –

相關問題