我發現Android在屏幕方向更改期間銷燬並重新創建活動。我有一個Activity可以自動查找設備的名義位置並將其顯示回給用戶。該位置存儲在整個應用程序過程中使用的記錄保存對象中。這裏是我的代碼:在Android中處理屏幕方向的變化 - 我做對了嗎?
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.location);
currentLocation = (TextView) findViewById(R.id.textCurrentLocation);
if (savedInstanceState == null)
new LocationDetectionTask(this).execute((Void[]) null);
else
currentLocation.setText(record.getLocation());
Log.d(TAG, "onCreate");
}
(正如您可能能夠告訴,record
表示數據記錄對象)。
這種處理屏幕方向變化的方法是否足夠?順便說一句,我不是壓倒性的onSaveInstanceState(Bundle)
。
此外,一個側面的問題:因爲LocationDetectionTask
是AsyncTask
,我該如何去處理屏幕方向的變化呢?
編輯:我忘了澄清這一點。在LocationDetectionTask
找到位置後,它將其放入record
。
作爲一個方面的評論。 http://stackoverflow.com/questions/4584015/handle-screen-orientation-changes-when-there-are-asynctasks-running – Malachi