如何修复在Android中发生的泄漏窗口错误:com.android.internal.policy.PhoneWindow
如何修复在Android中发生的泄漏窗口错误:com.android.internal.policy.PhoneWindow
在我的应用程序中,我想显示对话框,为此我编写了以下代码。
但是当运行应用程序时,对话框没有显示出来,并在logCat中显示以下错误。
我的logCat错误:
android.view.WindowLeaked: Activity com.app.android.Activity.DetailPage.RegisterInAuctionActivity has leaked window com.android.internal.policy.PhoneWindow$DecorView{1e27b62 V.E...... R.....I. 0,0-0,0} that was originally added here
at android.view.ViewRootImpl.
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:299)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:86)
at android.app.Dialog.show(Dialog.java:322)
at com.app.android.Activity.DetailPage.RegisterInAuctionActivity$2$1.onResponse(RegisterInAuctionActivity.java:372)
at retrofit2.ExecutorCallAdapterFactory$ExecutorCallbackCall$1$1.run(ExecutorCallAdapterFactory.java:70)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:148)
at android.app.ActivityThread.main(ActivityThread.java:5530)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:733)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:623)
我的Java代码:
Call
call2.enqueue(new Callback
@Override
public void onResponse(Call
if (response.body() != null) {
if (response.body().getRes() != null) {
if (response.body().getRes().getAccount() != null) {
handler.postDelayed(new Runnable() {
@Override
public void run() {
footerFragment.update(response.body().getRes().getAccount().getBuyBid(), isUpdateInfo);
}
}, 200);
dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.important_note);
dialog.setCancelable(false);
LinearLayout closeDialog = dialog.findViewById(R.id.okPayFrag_submitOK);
closeDialog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
dialog.dismiss();
}
});
dialog.show();
}
}
}
}
@Override
public void onFailure(Call
}
});
我该如何修复这个错误?