亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何在屏幕旋轉期間處理AsyncTask?

如何在屏幕旋轉期間處理AsyncTask?

白衣非少年 2019-08-26 11:22:06
如何在屏幕旋轉期間處理AsyncTask?我讀了很多關于如何保存我的實例狀態或如何在屏幕旋轉期間處理我的活動被破壞的內容。似乎有很多可能性,但我還沒有想出哪一個最適合檢索AsyncTask的結果。我有一些AsyncTasks只是再次啟動并調用isFinishing()活動的方法,如果活動正在完成,他們不會更新任何東西。問題是我有一個任務對Web服務發出請求失敗或成功的任務,并且重新啟動任務會導致用戶的經濟損失。你怎么解決這個問題?可能的解決方案有哪些優點或缺點?
查看完整描述

3 回答

?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

我的第一個建議是確保您確實需要在屏幕旋轉時重置您的活動(默認行為)。每次我遇到旋轉問題時,我都會<activity>在AndroidManifest.xml中將此屬性添加到我的標簽中,并且很好。

android:configChanges="keyboardHidden|orientation"

它看起來很奇怪,但是onConfigurationChanged()如果你不提供它,它會把它交給你的方法,它除了重新測量布局之外什么也沒做什么,這似乎是一種在大多數時候處理旋轉的完美的方法。


查看完整回答
反對 回復 2019-08-26
?
紫衣仙女

TA貢獻1839條經驗 獲得超15個贊

@Overrideprotected void onSaveInstanceState(Bundle outState) {
    super.onSaveInstanceState(outState);
    final AddTask task = mAddTask;
    if (task != null && task.getStatus() != UserTask.Status.FINISHED) {
        final String bookId = task.getBookId();
        task.cancel(true);

        if (bookId != null) {
            outState.putBoolean(STATE_ADD_IN_PROGRESS, true);
            outState.putString(STATE_ADD_BOOK, bookId);
        }

        mAddTask = null;
    }}@Overrideprotected void onRestoreInstanceState(Bundle savedInstanceState) {
        super.onRestoreInstanceState(savedInstanceState);
    if (savedInstanceState.getBoolean(STATE_ADD_IN_PROGRESS)) {
        final String id = savedInstanceState.getString(STATE_ADD_BOOK);
        if (!BooksManager.bookExists(getContentResolver(), id)) {
            mAddTask = (AddTask) new AddTask().execute(id);
        }
    }}


查看完整回答
反對 回復 2019-08-26
  • 3 回答
  • 0 關注
  • 412 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號