环境
<uses-sdk android:minSdkVersion="23" android:targetSdkVersion="23" />
真机Android 7.1.2
测试代码
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.activity_main); p1=new ProgressDialog(this); p1.setMessage("我是进度对话框1"); p1.show(); this.requestPermissions(new String[]{permission.WRITE_EXTERNAL_STORAGE}, 20); new Thread() { public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { } runOnUiThread(new Runnable() { public void run() { p1.hide(); } }); } }.start(); }
问题截图
操作系统授权后,对话框并没有被隐藏(进度动画也卡住)
解决方法
使用dismiss方法替换hide方法能解决
其他情况
难道是由于其他对话框(系统授权框)遮住ProgressDialog,所以被认作是hide了?
遮住情况测试代码
p1=new ProgressDialog(this); p1.setMessage("我是进度对话框1"); p1.show(); p2=new ProgressDialog(this); p2.setMessage("我是进度对话框2"); p2.show(); new Thread() { public void run() { try { Thread.sleep(1000); } catch (InterruptedException e) { } runOnUiThread(new Runnable() { public void run() { p1.hide(); } }); } }.start();
p2隐藏后,并没有出现p1继续显示情况。看来貌似只有系统授权对话框只会出现这种情况,实际还要看系统代码
相关推荐
在Android开发中,ProgressDialog是一种常见的UI...自定义ProgressDialog的实现不仅限于隐藏进度值,还可以扩展以实现更多的功能,如添加自定义动画、更改样式等,这完全取决于你的创造力和对Android UI组件的理解。
然而,由于Android的主线程(UI线程)与子线程之间的交互限制,直接在子线程中控制ProgressDialog的显示和消失可能会遇到问题。这篇博客将探讨如何在子线程中正确地控制ProgressDialog的可见性,同时遵循Android的UI...
在Android开发中,ProgressDialog是一种常用的UI组件,用于在执行耗时操作时向用户显示进度或指示等待状态。本文将深入探讨如何在主线程中控制ProgressDialog的可见性,并结合`Looper`和`Handler`来理解其工作原理。...
`dismiss()`方法用于关闭ProgressDialog,`hide()`方法则隐藏ProgressDialog但不销毁,以便之后再次显示。 5. 自定义ProgressDialog: 通过继承ProgressDialog并重写相关方法,可以实现自定义的外观和行为,例如...
`ProgressDialog`通过`pd.show()`和`pd.hide()`方法来控制显示和隐藏,同时可以通过`pd.setProgressStyle(ProgressDialog.STYLE_SPINNER)`设置其样式。 为了使WebView可以运行JavaScript代码,必须启用JavaScript...
这里值得注意的是,使用`hide()`而非`dismiss()`或`cancel()`来隐藏ProgressDialog,因为后者会完全结束对话框,而`hide()`只是使其不可见,这样在下次加载时,ProgressDialog的小圆圈仍能正常动画。 在处理网页...
在Android开发中,WebView是一个非常重要的组件,它允许开发者在应用程序内部嵌入网页内容,从而实现类似浏览器的功能。WebView基于WebKit渲染引擎,因此它可以很好地支持HTML、JavaScript和CSS等网络技术,极大地...
在Android开发中,WebView是一个非常重要的组件,它允许我们在应用程序中内嵌网页浏览功能,相当于在应用内部构建了一个小型的浏览器。WebView使用WebKit渲染引擎,能够很好地支持HTML、CSS、JavaScript等各种Web...
在Android开发中,短信验证码是一种常见的用户身份验证方式,它为用户提供了一种安全且便捷的登录或注册途径。本文将详细讲解如何在Android应用中实现短信验证码的获取以及自定义GUI短信验证的过程,同时也会涉及...
- `show()` 方法用于显示Dialog,`hide()` 方法则用于隐藏。在Activity中,还需要确保Activity处于活动状态时才能显示Dialog,否则可能导致异常。 5. **监听Dialog的事件**: - `setPositiveButton()`, `...
需要注意的是,`dismiss()`方法会彻底移除Dialog,而`hide()`仅使其不可见但保持实例。 在实际的安卓app开发中,熟练掌握Dialog的使用能极大地提升用户体验。通过这个项目提供的源码,开发者不仅可以了解Dialog的...
这个插件会利用 Android 的 `ProgressDialog` 或 `ProgressBar` 类来实现这一效果。在原生代码中,插件会监听 JavaScript 调用,并通过 Cordova 的桥接机制与 JavaScript 进行通信。 **iOS 实现** 对于 iOS,等待...