android-摧毁ProgressBar之前是否要检查isShowing的值

问题描述

摧毁ProgressBar之前是否要检查isShowing的值
当AsyncTask结束时,我会摧毁progress dialog。在摧毁progress dialog之前我是否要检查isShowing的值?
我试图不检查,同样会正常运行,但是不是有隐藏的漏洞?

if (progressDialog.isShowing()) {  progressDialog.dismiss();}

解决方案

似乎是在implementation中检查:

public void dismiss() {    if (Thread.currentThread() != mUiThread) {        mHandler.post(mDismissAction);    } else {        mDismissAction.run();    }}private void dismissDialog() {    if (mDecor == null || !mShowing) {        return;    }    try {        mWindowManager.removeView(mDecor);    } finally {        mDecor = null;        mWindow.closeAllPanels();        onStop();        mShowing = false;        sendDismissMessage();    }}

解决方案二:
你不需要检查isShowing的值去销毁 dialog。如果你不检查isShowing,系统会忽略progressbar调用dismiss()方法。但是检查isShowing是一个很好的实践,检查也不影响程序的正常运行。

时间: 2024-07-28 13:57:01

android-摧毁ProgressBar之前是否要检查isShowing的值的相关文章

android-关于Android中ProgressBar的问题

问题描述 关于Android中ProgressBar的问题 ProgressBar中的ProgressDrawable和IndeterminateDrawable两种属性有什么不同呢?他们俩的应用场景是什么? 解决方案 IndeterminateDrawable是用来表示没法估计准确进度的场景,显示一个动画来等待.ProgressDrawable表示知道进度,有百分比,可以估计剩余时间. IndeterminateDrawable一般在用户请求网络数据时,一个圆形不断旋转的progressBar

Android编程ProgressBar自定义样式之动画模式实现方法_Android

本文实例讲述了Android编程ProgressBar自定义样式之动画模式实现方法.分享给大家供大家参考,具体如下: 忘记在哪里看到的那位仁兄写的,就是通过用动画效果来实现的,现在顺便也把他写出来,希望那位仁兄不要见怪. 效果: 和之前的一样,在布局文件中: <ProgressBar android:id="@+id/progressBar3" android:layout_width="wrap_content" android:layout_height=

Android中ProgressBar用法简单实例

本文实例讲述了Android中ProgressBar用法.分享给大家供大家参考,具体如下: 在android中会经常用到ProgressBar,下面通过举例来说明如何使用ProgressBar. import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.vi

Android编程ProgressBar自定义样式之动画模式实现方法

本文实例讲述了Android编程ProgressBar自定义样式之动画模式实现方法.分享给大家供大家参考,具体如下: 忘记在哪里看到的那位仁兄写的,就是通过用动画效果来实现的,现在顺便也把他写出来,希望那位仁兄不要见怪. 效果: 和之前的一样,在布局文件中: <ProgressBar android:id="@+id/progressBar3" android:layout_width="wrap_content" android:layout_height=

android自定义ProgressBar(仿淘宝)的加载效果

三种方式实现自定义圆形页面加载中效果的进度条  To get a ProgressBar in the default theme that is to be used on white/light back ground, use one of the inverse styles: <ProgressBar style="@android:style/Widget.ProgressBar.Inverse"/> <ProgressBar style="@a

解析android中ProgressBar的用法_Android

范例说明Android的Widget,有许多是为了与User交互而特别设计的,但也有部分是作为程序提示.显示程序运行状态的Widget.现在介绍的范例,与前一章介绍过的ProgressDialog对话框的应用目的相似,但由于前章介绍的ProgressDialog是继承自Android.app.ProgressDialog所设计的互动对话窗口,在应用时,必须新建ProgressDialog对象,在运行时会弹出"对话框"作为提醒,此时应用程序后台失去焦点,直到进程结束后,才会将控制权交给应

解析android中ProgressBar的用法

范例说明Android的Widget,有许多是为了与User交互而特别设计的,但也有部分是作为程序提示.显示程序运行状态的Widget.现在介绍的范例,与前一章介绍过的ProgressDialog对话框的应用目的相似,但由于前章介绍的ProgressDialog是继承自Android.app.ProgressDialog所设计的互动对话窗口,在应用时,必须新建ProgressDialog对象,在运行时会弹出"对话框"作为提醒,此时应用程序后台失去焦点,直到进程结束后,才会将控制权交给应

android 获取application和activity下meta-data中的值

        meta-data在AndroidManifest中是以键值对的形式存在的,可以将meta-data放在application根节点下,也可以放在某个activity节点下.因为存放的位置不同,因此获取value时也要使用对应的方法,下面是我写的一个小测试. 代码如下: 先是在AndroidManifest中的application和mainActivity下添加两个meta-data属性. [java] view plaincopy <application       and

SQL Server中检查字段的值是否为数字的方法_MsSql

最近有一个项目,需要检查某个字符型字段的值是否为数字,由于数据行是海量,所以需要通过SQL语句来筛查,这里拿来做个备忘. 用到的函数为IsNumeric,具体语句如下所示: 复制代码 代码如下: SELECT * FROM 表 WHERE IsNumeric(需要检查的字段名) = 0 ISNUMERIC    确定表达式是否为一个有效的数字类型.       语法    ISNUMERIC   (   expression   )       参数    expression       要计