为了安抚用户等待的焦急心情,我们用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了。
分享到:
相关推荐
Android提高篇之自定义dialog实现processDialog“正在加载”效果、使用Animation实现图片旋转源码。 知识点: 1、使用imageview、textview自定义dialog 2、使用Animation实现图片旋转动画效果 3、通过自定义theme...
本文实例讲述了Android中Parcel用法。分享给大家供大家参考,具体如下: Android 中Parcel 的使用,他是一个存储基本数据类型和引用数据类型的容器,在andorid 中通过IBinder来绑定数据在进程间传递数据。 Parcel ...
本教程将深入探讨Android应用源码中的ProgressBar用法,几乎涵盖所有常见和不常见的操作。 1. **基本使用** ProgressBar的基本使用非常简单,只需在布局文件中添加一个ProgressBar标签,设置其属性,如id、style、...
android descendantFocusability用法简析
android progressDialog各种用法android progressDialog各种用法android progressDialog各种用法android progressDialog各种用法
本文将深入探讨如何使用JavaScript调用Android的方法,并传递JSON数据,以实现两者之间的高效通信。 首先,我们需要了解`Android WebView`。WebView是Android系统提供的一种组件,它能够加载并显示网页内容,就像是...
本文将详细介绍Android ProgressBar的使用方法,帮助开发者更好地理解和应用这一组件。 一、ProgressBar的基本类型 1. 横向进度条:默认样式,显示为一条水平的进度条,通过`android:progress`属性设置当前进度,`...
里面包含了一个反编译工具,一个查看反编译后的文件工具,一个详细说明文档,可以将一个android的apk文件反编译后查看作者的原代码,由于在代码打包成apk时的编译经过了处理,反编译后的代码不可能恢复到原来的代码...
DEMO实现功能: ...RecyclerView Item之间添加分隔线:垂直与水平方向 RecyclerView 单个与多个Item的添加与删除 RecyclerView Item添加与删除动画效果 ...LayoutManager的使用 详见http://blog.csdn.net/yalinfendou
Android中的常用控件及其基本用法 TextView的使用方法 EditText的使用方法 Button的使用方法 Menu的使用方法 RadioGroup和RadioButton
本文将深入探讨Android平台中几个常见的UI控件:TextView、Button、EditText、ImageView、ProgressBar、AlertDialog以及ProgressDialog的使用方法。 首先,我们来看TextView,它是Android中最基本的文本展示控件。...
【Android WebSocket】Android 端 WebSocket 基本用法 ( 下载 Java-WebSocket源码 | 导入 Java-WebSocket-1.5.2 工程作为依赖 ) https://hanshuliang.blog.csdn.net/article/details/123633108 博客源码快照
Android图像操作一例,使用Matrix.postRotate方法旋转图片,这些的图片格式是BMP,其它格式可能也能用吧,没测试,旋转BMP图片的效果如截图所示,用户单击向左或向右按钮后,图片旋转90度,旋转角度根据自己需要...
addCallbackBuffer 用法 camera android 例子大全 addCallbackBuffer 用法 camera android 例子大全 addCallbackBuffer 用法 camera android 例子大全 addCallbackBuffer 用法 camera android 例子大全 ...
在Android应用开发中,CRC(Cyclic Redundancy Check,循环冗余校验)是一种广泛使用的错误检测方法,主要用于确保数据传输或存储的完整性。CRC校验通过计算数据的特定校验码,然后将这个校验码与接收端计算出的校验...
Android TabHost用法详解,非常好的实例
下面将详细探讨Android串口通信的基本概念、实现方法以及使用Android Studio开发的相关注意事项。 1. **基本概念** - **串口通信**:串口通信是通过串行数据传输的方式进行设备间的通信,常见的串口接口有RS-232、...
在这种情况下,你需要一个完整功能的wget版本,这就是"Android终端上可以使用的完全版本wget"的由来。 wget是一款强大的非交互式网络下载工具,广泛应用于Linux和Unix系统,同时也适用于Android这样的移动平台。它...
Android AIDL用法介绍, 可以简单了解AIDL的实现机制,应用到实际项目中。