2011-12-05 36 views
0

在我的活動中,我有一個名爲A的內部類擴展AsyncTask。當設備旋轉時,我不希望活動破壞並重新創建。我希望它繼續運行。我已閱讀此鏈接RotationAsync 。他們使用靜態類AsyncTask。我在我的活動中聲明瞭許多變量,所以如果我使用靜態類,我不能使用活動的變量。有沒有使用靜態類AsyncTask上面鏈接的另一種方法?感謝您的回答。對不起,如果我的英語有一些錯誤。Android - 活動繼續運行,而輪轉正在進行

回答

1

您可以防止活動使用的清單此設置重新啓動:

<activity android:name=".MyActivity" 
     android:configChanges="orientation|keyboardHidden" 
     android:label="@string/app_name"> 

這樣做後,您可以使用此代碼

@Override public void onConfigurationChanged(Configuration newConfig) { 
super.onConfigurationChanged(newConfig); 

// Checks the orientation of the screen 
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) { 
    //do something here 
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT){ 
    //do something here 
} 
管理變化

}

欲瞭解更多信息,請登錄http://developer.android.com/guide/topics/resources/runtime-changes.html

+0

謝謝。但我會用這種方式作爲最後的解決方案:( – Thanh

+0

沒問題。一個提示,看看我發佈的鏈接,如果你不使用這種方式,它可能是有用的,因爲它顯示瞭如何在應用程序旋轉之前保留數據。 – Fede

0

要保存變量,可以將它們保存到一個Bundle中,並在重新創建時重新載入您的Activity的狀態。這應該讓你開始:http://developer.android.com/guide/topics/fundamentals/activities.html#SavingActivityState

+0

我的活動播放mp3文件並在一組圖像中顯示圖像。如何保存到我旋轉時,它繼續播放MP3文件,不再播放? – Thanh

+0

您應該使用服務來管理MP3的播放,並且該活動可以告訴服務何時啓動和停止。看看IntentService,這是最簡單的實現:http://developer.android.com/reference/android/app/IntentService.html – elevine

+0

謝謝。我會試試:) – Thanh