`
sd8089730
  • 浏览: 258604 次
  • 性别: Icon_minigender_1
  • 来自: 吉林
社区版块
存档分类
最新评论

Android Processdialog 用法

 
阅读更多
为了安抚用户等待的焦急心情,我们用ProgressDialog。它的用法书上有例子,就是:
ProgressDialog myDialog = ProgressDialog.show(YourClass.this, "正在连接服务器..", "连接中,请稍后..", true, true);
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, "正在连接服务器..", "连接中,请稍后..", true, true);
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了。

 

分享到:
评论

相关推荐

    自定义dialog实现processDialog“正在加载”效果

    Android提高篇之自定义dialog实现processDialog“正在加载”效果、使用Animation实现图片旋转源码。 知识点: 1、使用imageview、textview自定义dialog 2、使用Animation实现图片旋转动画效果 3、通过自定义theme...

    Android中Parcel用法详解

    本文实例讲述了Android中Parcel用法。分享给大家供大家参考,具体如下: Android 中Parcel 的使用,他是一个存储基本数据类型和引用数据类型的容器,在andorid 中通过IBinder来绑定数据在进程间传递数据。 Parcel ...

    Android应用源码之ProgressBar 几乎全部的用法

    本教程将深入探讨Android应用源码中的ProgressBar用法,几乎涵盖所有常见和不常见的操作。 1. **基本使用** ProgressBar的基本使用非常简单,只需在布局文件中添加一个ProgressBar标签,设置其属性,如id、style、...

    android descendantFocusability用法简析

    android descendantFocusability用法简析

    android progressDialog各种用法

    android progressDialog各种用法android progressDialog各种用法android progressDialog各种用法android progressDialog各种用法

    JS调用Android方法,向Android方法传递json数据

    本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 首先,我们需要了解`Android WebView`。WebView是Android系统提供的一种组件,它能够加载并显示网页内容,就像是...

    android ProgressBar 全部的用法

    本文将详细介绍Android ProgressBar的使用方法,帮助开发者更好地理解和应用这一组件。 一、ProgressBar的基本类型 1. 横向进度条:默认样式,显示为一条水平的进度条,通过`android:progress`属性设置当前进度,`...

    android反编译工具及使用方法

    里面包含了一个反编译工具,一个查看反编译后的文件工具,一个详细说明文档,可以将一个android的apk文件反编译后查看作者的原代码,由于在代码打包成apk时的编译经过了处理,反编译后的代码不可能恢复到原来的代码...

    Android Recyclerview使用方法

    DEMO实现功能: ...RecyclerView Item之间添加分隔线:垂直与水平方向 RecyclerView 单个与多个Item的添加与删除 RecyclerView Item添加与删除动画效果 ...LayoutManager的使用 详见http://blog.csdn.net/yalinfendou

    Android中的常用控件及其基本用法

    Android中的常用控件及其基本用法 TextView的使用方法 EditText的使用方法 Button的使用方法 Menu的使用方法 RadioGroup和RadioButton

    android常见控件的使用方法

    本文将深入探讨Android平台中几个常见的UI控件:TextView、Button、EditText、ImageView、ProgressBar、AlertDialog以及ProgressDialog的使用方法。 首先,我们来看TextView,它是Android中最基本的文本展示控件。...

    Android WebSocket 用法 ( 导入 Java-WebSocket 源码依赖 )

    【Android WebSocket】Android 端 WebSocket 基本用法 ( 下载 Java-WebSocket源码 | 导入 Java-WebSocket-1.5.2 工程作为依赖 ) https://hanshuliang.blog.csdn.net/article/details/123633108 博客源码快照

    Android 使用Matrix.postRotate方法旋转图片.rar

    Android图像操作一例,使用Matrix.postRotate方法旋转图片,这些的图片格式是BMP,其它格式可能也能用吧,没测试,旋转BMP图片的效果如截图所示,用户单击向左或向右按钮后,图片旋转90度,旋转角度根据自己需要...

    addCallbackBuffer 用法 camera android 例子大全

    addCallbackBuffer 用法 camera android 例子大全 addCallbackBuffer 用法 camera android 例子大全 addCallbackBuffer 用法 camera android 例子大全 addCallbackBuffer 用法 camera android 例子大全 ...

    Android开发中使用CRC校验

    在Android应用开发中,CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛使用的错误检测方法,主要用于确保数据传输或存储的完整性。CRC校验通过计算数据的特定校验码,然后将这个校验码与接收端计算出的校验...

    Android TabHost用法详解

    Android TabHost用法详解,非常好的实例

    Android串口通信(Android Studio)

    下面将详细探讨Android串口通信的基本概念、实现方法以及使用Android Studio开发的相关注意事项。 1. **基本概念** - **串口通信**:串口通信是通过串行数据传输的方式进行设备间的通信,常见的串口接口有RS-232、...

    Android 终端上可以使用的完全版本wget

    在这种情况下,你需要一个完整功能的wget版本,这就是"Android终端上可以使用的完全版本wget"的由来。 wget是一款强大的非交互式网络下载工具,广泛应用于Linux和Unix系统,同时也适用于Android这样的移动平台。它...

    Android AIDL用法介绍

    Android AIDL用法介绍, 可以简单了解AIDL的实现机制,应用到实际项目中。

Global site tag (gtag.js) - Google Analytics