热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AndroidProcessdialog用法

为了安抚用户等待的焦急心情,我们用ProgressDialog。它的用法书上有例子,就是:ProgressDialogmyDialogProgressD
  • 为了安抚用户等待的焦急心情,我们用ProgressDialog。它的用法书上有例子,就是:   
  • ProgressDialog myDialog = ProgressDialog.show(YourClass.this"正在连接服务器..""连接中,请稍后.."truetrue);   
  • handler.post(mTasks);   
  • 它的用法一般都是在用intent开启一个新的activity的时候,你直接加上这句话,是达不到你想要的效果的。   
  • 你必须这样用:把用intent开启activity的这件事放在一个Runnable对象的run()方法中,然后用handler.post()方法来运行这个线程。   
  • 代码如下:   
  • Handler handler = new Handler();   
  • Runnable mTasks = new Runnable() {   
  •   public void run() {   
  •     Intent intent = new Intent();   
  •     intent.setClass(YourClass .this,EditHome.class);   
  •     startActivity(intent);   
  •    }   
  • };   
  • final ProgressDialog myDialog = ProgressDialog.show(YourClass.this"正在连接服务器..""连接中,请稍后.."truetrue);   
  • handler.post(mTasks);   
  •   
  • 这样算是达到我们要的效果了,可是,那个ProgressDialog的窗口并没有关闭,所以后面还要加上myDialog.dismiss();   
  • 但这样的话,窗口出来就消失,我们又看不到ProgressDialog了...所以,我们要用一个线程来控制窗口消失的时间:   
  •   
  • new Thread() {   
  •    public void run() {   
  •      try{   
  •        sleep(5000);   
  •      }catch(InterruptedException e){   
  •          e.printStackTrace();   
  •      }   
  •      myDialog.dismiss();   
  •    }}.start();   
  •   
  • 那个sleep的时间是你估算下一个activity显示出来所需要的时间。OK了。   
  • 但显然这样做是不科学的。科学的做法是:首先在原avtivity中添加一个关闭Dialog的静态方法:   
  •   
  • public static void closeProgressDialog() {   
  •    myDialog.dismiss();   
  • }   
  •   
  • 然后在目标的activity中添加两个成员变量:   
  •   
  • private static final int EVENT_TIME_TO_CHANGE_IMAGE = 100;   
  • private Handler mHandler = new Handler() {   
  • public void handleMessage(Message msg) {   
  •       switch(msg.what){   
  •         case EVENT_TIME_TO_CHANGE_IMAGE:   
  •              YourPrimaryClass.closeProgressDialog();   
  •         break;   
  •      }   
  • }};   
  •   
  • 其中Handler中注册了关闭窗口的条件和关闭动作(调用静态方法)。然后在这个activity的onCreat()方法里的最后面加上发送消息的代码:   
  • Message message = mHandler.obtainMessage(EVENT_TIME_TO_CHANGE_IMAGE);   
  • mHandler.sendMessage(message);   
  • 这样就能保证是在目标activity全部显现出来之后关闭那个progressDialog了。 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文给大家一个简单实用的方法通过创建一个线程而不是服务的方式来解决耗时操作时的假死或等待。

在一个名为Hedalixin的Activity中,我们通过一个进度条控件ProgressDialog可以处理很多耗时操作。代码如下

 

[java] view plaincopyprint?
    1. final ProgressDialog dialog = ProgressDialog.show(Hedalixin.this"标题""正文"true);     
    2. final Handler handler = new Handler() {     
    3.    public void handleMessage(Message msg) {     
    4.       dialog.dismiss();   //关闭progressdialog   
    5.       }     
    6.    };     
    7.   
    8. Thread testThread = new Thread() {       
    9.    public void run() {     
    10.   
    11.      //这里处理耗时操作,比如文件下载等等。   
    12.    
    13.       handler.sendEmptyMessage(0);    //告诉handler   
    14.       }     
    15.    };     
    16. testThread.start();    

转:https://www.cnblogs.com/gzhnan/articles/3479922.html



推荐阅读
  • 字符串学习时间:1.5W(“W”周,下同)知识点checkliststrlen()函数的返回值是什么类型的?字 ... [详细]
  • 本文介绍了 Go 语言中的高性能、可扩展、轻量级 Web 框架 Echo。Echo 框架简单易用,仅需几行代码即可启动一个高性能 HTTP 服务。 ... [详细]
  • WCF类型共享的最佳实践
    在使用WCF服务时,经常会遇到同一个实体类型在不同服务中被生成为不同版本的问题。本文将介绍几种有效的类型共享方法,以解决这一常见问题。 ... [详细]
  • python模块之正则
    re模块可以读懂你写的正则表达式根据你写的表达式去执行任务用re去操作正则正则表达式使用一些规则来检测一些字符串是否符合个人要求,从一段字符串中找到符合要求的内容。在 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 本文详细介绍了 HTML 中 a 标签的 href 属性的多种用法,包括实现超链接、锚点以及调用 JavaScript 方法。通过具体的示例和解释,帮助开发者更好地理解和应用这些技术。 ... [详细]
  • 为什么多数程序员难以成为架构师?
    探讨80%的程序员为何难以晋升为架构师,涉及技术深度、经验积累和综合能力等方面。本文将详细解析Tomcat的配置和服务组件,帮助读者理解其内部机制。 ... [详细]
  • 如果应用程序经常播放密集、急促而又短暂的音效(如游戏音效)那么使用MediaPlayer显得有些不太适合了。因为MediaPlayer存在如下缺点:1)延时时间较长,且资源占用率高 ... [详细]
  • 基于iSCSI的SQL Server 2012群集测试(一)SQL群集安装
    一、测试需求介绍与准备公司计划服务器迁移过程计划同时上线SQLServer2012,引入SQLServer2012群集提高高可用性,需要对SQLServ ... [详细]
  • 网络爬虫的规范与限制
    本文探讨了网络爬虫引发的问题及其解决方案,重点介绍了Robots协议的作用和使用方法,旨在为网络爬虫的合理使用提供指导。 ... [详细]
  • JUC(三):深入解析AQS
    本文详细介绍了Java并发工具包中的核心类AQS(AbstractQueuedSynchronizer),包括其基本概念、数据结构、源码分析及核心方法的实现。 ... [详细]
  • 解决Only fullscreen opaque activities can request orientation错误的方法
    本文介绍了在使用PictureSelectorLight第三方框架时遇到的Only fullscreen opaque activities can request orientation错误,并提供了一种有效的解决方案。 ... [详细]
  • 本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ... [详细]
  • 解决Bootstrap DataTable Ajax请求重复问题
    在最近的一个项目中,我们使用了JQuery DataTable进行数据展示,虽然使用起来非常方便,但在测试过程中发现了一个问题:当查询条件改变时,有时查询结果的数据不正确。通过FireBug调试发现,点击搜索按钮时,会发送两次Ajax请求,一次是原条件的请求,一次是新条件的请求。 ... [详细]
  • 本文详细介绍了 PHP 中对象的生命周期、内存管理和魔术方法的使用,包括对象的自动销毁、析构函数的作用以及各种魔术方法的具体应用场景。 ... [详细]
author-avatar
KeNnyT0nGMM_934
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有