2012-01-13 71 views
0

我是Android應用程序的新手。 我的adnroid應用程序在模擬器上運行良好,但運行在真正的android設備(Softbank 003 SH)上,當我將設備從縱向旋轉到橫向時,應用程序意外停止。 你有什麼提示來解決這個問題嗎?Android應用程序意外停止時旋轉

+0

當設備旋轉時,活動將被實際銷燬並重新創建。檢查[活動](http://developer.android.com/reference/android/app/Activity.html)文檔中的活動生命週期信息。 – tidbeck 2012-01-13 00:44:22

回答

2

時,從橫向到縱向旋轉設備將重新創建活動,這樣的線程將停止,如果任何建設者正在運行將導致錯誤這樣:

開始通過增加 安卓configChanges節點您的活動的清單節點

android:configChanges="keyboardHidden|orientation" 

那麼活動中覆蓋onConfigurationChanged方法和調用的setContentView迫使GUI佈局在新的方向重新做。

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    setContentView(R.layout.myLayout); 
} 
+1

非常感謝!在我的情況下,我將android:screenOrientation =「nosensor」android:configChanges =「keyboardHidden | orientation」添加到androidmanifest.xml文件中,問題得到解決。 – Aloha 2012-01-13 02:03:27

1

您可以使用CTRL + F12模擬仿真器上的旋轉。

至於「意外」停止,這是因爲當你旋轉時,Activity被重新加載(onCreate再次運行等),並且你可能沒有遵循Android的編碼方式,一些變量結束未初始化!假設Android像Windows一樣工作(有應用程序)是一個非常常見的錯誤,但通常它更像iPhone或動態網頁(具有半獨立形式)。

檢查LogCat的錯誤。