第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

java.lang.IllegalArgumentException:視圖未附加到窗口管理器

java.lang.IllegalArgumentException:視圖未附加到窗口管理器

catspeake 2019-12-11 13:09:11
我有一個(gè)活動(dòng),它將啟動(dòng)AsyncTask并在操作期間顯示進(jìn)度對(duì)話框。聲明該活動(dòng)不能通過(guò)旋轉(zhuǎn)或鍵盤(pán)滑動(dòng)來(lái)重新創(chuàng)建。    <activity android:name=".MyActivity"               android:label="@string/app_name"              android:configChanges="keyboardHidden|orientation"              >        <intent-filter>        </intent-filter>    </activity>任務(wù)完成后,我關(guān)閉對(duì)話框,但是在某些電話(框架:1.5、1.6)上會(huì)引發(fā)此類錯(cuò)誤:java.lang.IllegalArgumentException: View not attached to window manager    at android.view.WindowManagerImpl.findViewLocked(WindowManagerImpl.java:356)    at android.view.WindowManagerImpl.removeView(WindowManagerImpl.java:201)    at android.view.Window$LocalWindowManager.removeView(Window.java:400)    at android.app.Dialog.dismissDialog(Dialog.java:268)    at android.app.Dialog.access$000(Dialog.java:69)    at android.app.Dialog$1.run(Dialog.java:103)    at android.app.Dialog.dismiss(Dialog.java:252)    at xxx.onPostExecute(xxx$1.java:xxx)我的代碼是:final Dialog dialog = new AlertDialog.Builder(context)    .setTitle("Processing...")    .setCancelable(true)    .create();final AsyncTask<MyParams, Object, MyResult> task = new AsyncTask<MyParams, Object, MyResult>() {    @Override    protected MyResult doInBackground(MyParams... params) {        // Long operation goes here    }    @Override    protected void onPostExecute(MyResult result) {        dialog.dismiss();        onCompletion(result);    }};task.execute(...);dialog.setOnCancelListener(new OnCancelListener() {    @Override    public void onCancel(DialogInterface arg0) {        task.cancel(false);    }});dialog.show();根據(jù)我已閱讀(http://bend-ing.blogspot.com/2008/11/properly-handle-progress-dialog-in.html)并在Android資料中看到的內(nèi)容,看來(lái)這是唯一可能的解決方法例外是活動(dòng)被破壞時(shí)。但是正如我已經(jīng)提到的,我禁止在基本活動(dòng)中進(jìn)行活動(dòng)娛樂(lè)。因此,任何建議都將不勝感激。
查看完整描述

3 回答

?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊

我可能有解決方法。


也有同樣的問(wèn)題,在這里我加載大量項(xiàng)目(通過(guò)文件系統(tǒng))為L(zhǎng)istView通過(guò)AsyncTask。先onPreExecute()觸發(fā)a ProgressDialog,然后再通過(guò)onPostExecute()和onCancelled()調(diào)用(在通過(guò)顯式取消任務(wù)時(shí)調(diào)用AsyncTask.cancel())將其關(guān)閉.cancel()。


當(dāng)我使用的onCancelled()方法殺死對(duì)話框時(shí),出現(xiàn)了相同的“ java.lang.IllegalArgumentException:視圖未附加到窗口管理器”錯(cuò)誤AsyncTask(我在出色的Shelves應(yīng)用程序中看到了這一點(diǎn))。


解決方法是在中創(chuàng)建一個(gè)AsyncTask包含以下內(nèi)容的公共字段ProgressDialog:


public ProgressDialog mDialog;

然后,onDestroy()當(dāng)我取消自己的時(shí)AsyncTask,我還可以通過(guò)以下方法終止關(guān)聯(lián)的對(duì)話框:


AsyncTask.mDialog.cancel();

呼叫AsyncTask.cancel()DOES觸發(fā)onCancelled()的AsyncTask,但由于某些原因通過(guò)該方法被調(diào)用的時(shí)候,查看已經(jīng)被銷毀,因此撤銷對(duì)話框失敗。



查看完整回答
反對(duì) 回復(fù) 2019-12-12
  • 3 回答
  • 0 關(guān)注
  • 441 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)