繁体   English   中英

当ProgressDialog dismiss方法被称为android时发生NullPointerException

[英]NullPointerException when ProgressDialog dismiss method is called android

关闭进度对话框时出现随机崩溃。 我的代码是:

if(progressdialog != null && progressdialog.isShowing())
{
   progressdialog.dismiss();
}

我在progressdialog.dismiss()上收到NullPointerException。 通过空值检查后怎么可能?

这是崩溃日志

java.lang.NullPointerException
at com.ebooks.android.Category_Author_Listing$1.handleMessage(Author_Listing.java:1325)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:5103)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:525)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
at dalvik.system.NativeStart.main(Native Method)

这可能是因为android UI组件不是线程安全的,我想您在oncreate之前声明了变量,然后在oncreate内使用了.show或oncreate初始化后调用的任何方法。

解决方法是只用

progressDialog =ProgressDialog.show(MainActivity.this,"title","message");

现在您可以关闭它,它不会显示空指针。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM