为了安抚用户等待的焦急心情,我们用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 自定义组合progressdialog进度条,方便你的使用............................................................................................
本源码主要是演示在Android中使用ProgressDialog,定义了两种常用的ProgressDialog进度对话框,一种是长形进度条,这是最早时候的进度条,有点像windows 7风格,另外上一种是圆形的进度条,这种进度条风格在目前的...
这个demo是关于android中继承Dialog重新自定义一个ProgressDialog。 需求:带加载图片和文字说明,可定时停止也可被动中断。 如有BUG或者不完善,欢迎小伙伴们提出~
android 自定义ProgressDialog对话框,
Android百分比加载进度条的实例,又一个使用ProgressDialog创建进度条的例子,进度条的实例方法,其实比较简单,先看以下代码: 重写onCreateDialog方法 switch(id){//对id进行判断 case PROGRESS_DIALOG://...
android progressDialog各种用法android progressDialog各种用法android progressDialog各种用法android progressDialog各种用法
android自定义ProgressDialog样式详解,一分钟教会你如何自定义android样式。
progressDialog progressbar 自定义颜色
android中透明Dialog及ProgressDialog的实现
Android ProgressDialog 进度条对话框的模拟实现和代码解析,此为例子源代码,在本例中实现进度条需要调用onPrepareDialog()方法和showDialog(),应用程序处理进度条指示功能。
自定义加载对话框ProgressDialog, 加载动画完美结合,很好实例,欢迎学习
有时我们在项目执行某些耗时的操作是需要在界面上给出等待之类的信息,在android里面可以使用progressbar或者progressdialog,但是前者在等待时可以操作界面上其他空间,不是我想要的,后者界面太丑,我希望定义自己...
简单便于集成的自定义ProgressDialog,适合扩展,方便新手学习
自定义进度对话框ProgressDialog,直接解压缩运行即可。
自定义透明背景ProgressDialog,通过继承Dialog+帧动画 具体博文地址http://blog.csdn.net/shenyuanqing/article/details/47397013
闲来无事,总结了两个自定义的ProgressDialog,大家可以参考下
Android自定义类似ProgressDialog效果的Dialog
Android 自带progressDialog的使用
android demo,ProgressDialog的源代码的实现。