當Android 手機的方向被改變的時後,會造成 Activity 被重啟。如此一來 Activity 的狀態會被清空會造成意外中的 bug
這次就是在送資料到 server 時的時間差,變換了手機的方向。造成 activity 被重啟,在接不到資料的狀態之下,程式就 crash 了。
如何設定讓Activity 不會被重啟??
要達到這個目的,要修改 AndroidManifest.xml 在 activity 的tag 中加入設定
1: <activity android:name=".Activity"
2: android:configChanges="orientation|keyboardHidden"
3: android:label="@string/app_name">
4: <intent-filter>
5: <action android:name="android.intent.action.MAIN" />
6: <category android:name="android.intent.category.LAUNCHER" />
7: </intent-filter>
8: </activity>
經過這個設定, Activity 就不會被重啟,而改呼叫 onConfigurationChanged 的 Event。
另外,也可以固定畫面方向不被改變
可以在 activity 中加入設定,看要使用 landscape 或是 portrait
1: <activity
2: android:screenOrientation=["unspecified" | "user" | "behind" |
3: "landscape" | "portrait" |
4: "sensor" | "nosensor"]>
5: </activity>
[Reference]
Activity 設定檔文件
http://developer.android.com/guide/topics/manifest/activity-element.html
沒有留言:
張貼留言