ProgressDialog的简单应用,等待提示

在应用中经常会用到一些费时的操作,需要用户进行等待,比如加载网页内容……

这时候就需要一个提示来告诉用户程序正在执行,并没有假死或者真死……囧……

而ProgressBar、ProgressDialog等就是专门干这个的。

以ProgressDialog为例,一般的使用它步骤为:在执行耗时间的操作之前弹出ProgressDialog提示用户,然后开一个新线程,在新线程里执行耗时的操作,执行完毕之后通知主程序将ProgressDialog结束。

以下是一个demo,很简单的用法:

package com.android.ui;

import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class MainActivity extends Activity {

	private Button button;
	private ProgressDialog pd;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);

		button = (Button) findViewById(R.id.button1);

		button.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				/* 显示ProgressDialog */
				pd = ProgressDialog.show(MainActivity.this, "标题", "加载中,请稍后……");

				/* 开启一个新线程,在新线程里执行耗时的方法 */
				new Thread(new Runnable() {
					@Override
					public void run() {
						spandTimeMethod();// 耗时的方法
						handler.sendEmptyMessage(0);// 执行耗时的方法之后发送消给handler
					}

				}).start();
			}
		});

	}

	private void spandTimeMethod() {
		try {
			Thread.sleep(5000);
		} catch (InterruptedException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

	Handler handler = new Handler() {
		@Override
		public void handleMessage(Message msg) {// handler接收到消息后就会执行此方法
			pd.dismiss();// 关闭ProgressDialog
		}
	};
}

main.xml中只有一个Button,就不贴了,程序应该很好理解,点击按钮后弹出ProgressDialog,在新线程中执行耗时操作(Thread.sleep(5000);),执行完毕之后通知handler,结束ProgressDialog。

运行效果如下:

时间: 2024-10-20 12:51:06

ProgressDialog的简单应用,等待提示的相关文章

安卓ProgressDialog.show(),无法显示等待框

先给大家把我的解决代码贴出来: package com.park; import java.io.IOException; import java.io.InputStream; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Method; import java.util.Objects; import java.util.Timer; import java.util.TimerTas

iOS开发从入门到精通-- 警告对话框UIAlertView和等待提示器UIActivityIndicatorView

警告对话框UIAlertView和等待提示器UIActivityIndicatorView: 1.UIAlertView简单一点就是弹框 2.就是所谓的菊花转圈圈 声明:注意@interface ViewController : UIViewController<UIAlertViewDelegate>这个里面多了一个UIAlertViewDelegate代理 #import <UIKit/UIKit.h> @interface ViewController : UIViewCon

简单封装MessageBox提示对话框

namespace DMS.Common { public class MsgHelper { public static DialogResult ShowErrorMsgBox(string error) { return MessageBox.Show(error, "错误", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); } public static DialogResult ShowInformationMsgBox(str

Qt之等待提示框(QPropertyAnimation)

简述 之前分享过QLabel可以通过QMovie播放gif图片,可以实现等待提示框,今天主要使用动画QPropertyAnimation来进行实现! 数据加载的时候,往往都需要后台线程进行数据请求,而前台需要进行友好性的交互,防止无休止的等待,或者进程卡死. 简述 效果 资源 源码 分析 衍伸 效果 由于录制程序的原因,引起gif效果不清晰,可忽略. 资源 需要几张不同阶段的图标进行切换,这里使用8张. 源码 QPropertyAnimation动画里面并不支持旋转的属性,所以我们可以通过自定义

Qt之等待提示框(QTimer)

简述 上节讲述了关于QPropertyAnimation实现等待提示框的显示,本节我们使用另外一种方案来实现-使用定时器QTimer,通过设置超时时间定时更新图标达到旋转效果. 简述 效果 资源 源码 效果 由于录制程序的原因,引起gif效果不清晰,可忽略. 资源 需要几张不同阶段的图标进行切换,这里使用8张. 源码 QTimer通过setInterval设置100毫秒超时时间,每隔100毫秒后进行图标的更换,达到旋转效果. m_pTimer = new QTimer(this);. // 设定

支持实现HTML5音频:嵌入简单的声音提示技巧

了解如何使用HTML音频元素嵌入在网页中的声音容易.在本教程中都包含大量的代码示例. 截至目前,在Web浏览器中的音频播放一直是位一个黑色的艺术.传统上,有几种方法可以嵌入在网页中的声音 -一些比别人更好的工作,和许多人只工作,如果你碰巧使用正确的浏览器,用正确的插件. 无处不在的Flash插件已经在很大程度上帮助,因为Flash可以很容易地嵌入音频的方式,与大多数浏览器.然而,这并不能帮助iPhone和iPad不支持Flash的浏览器,如Safari. 总之,这是一个有点乱. 幸运的是,HTM

IOS开发之XCode学习014:警告对话框和等待提示器

此文学习来源为:http://study.163.com/course/introduction/1002858003.htm 此工程文件实现功能:  1.警告对话框和等待提示器的概念 2.警告对话框和等待提示器的属性 3.警告对话框和等待提示器的使用 ===========================ViewController.h脚本============================== @interface ViewController : UIViewController <U

【转】我的Android笔记(十)—— ProgressDialog的简单应用,等待提示

原文网址:http://blog.csdn.net/barryhappy/article/details/7376231 在应用中经常会用到一些费时的操作,需要用户进行等待,比如加载网页内容…… 这时候就需要一个提示来告诉用户程序正在执行,并没有假死或者真死……囧…… 而ProgressBar.ProgressDialog等就是专门干这个的. 以ProgressDialog为例,一般的使用它步骤为:在执行耗时间的操作之前弹出ProgressDialog提示用户,然后开一个新线程,在新线程里执行耗

我的Android笔记(十)—— ProgressDialog的简单应用,等待提示 (转载)

转自:http://blog.csdn.net/barryhappy/article/details/7376231 在应用中经常会用到一些费时的操作,需要用户进行等待,比如加载网页内容…… 这时候就需要一个提示来告诉用户程序正在执行,并没有假死或者真死……囧…… 而ProgressBar.ProgressDialog等就是专门干这个的. 以ProgressDialog为例,一般的使用它步骤为:在执行耗时间的操作之前弹出ProgressDialog提示用户,然后开一个新线程,在新线程里执行耗时的