一个好的APP应用程序需要响应用户采取的操作,例如在用户发出登录请求时,显示一个正在加载的对话框,告知用户正在请求APP应用程序。 这是通过使用Thread ProgressDialog在Handler上通知加载完成来实现的。 因为实现过程比较简单,所以不多说了,但是首先来看看效果图吧:
我不解释。 直接代码。 代码是拼凑的,主要是想说明过程。
publicclassloginactivityextendsactivity {
publicprogressdialogloadialog;
@Override
公共语音创建(bundlesavedinstancestate )。
super.oncreate (savedinstancestate;
setcontentview(r.layout.main );
loginthread('test ',' test ' );
}
//*
*开始启动加载对话框
*/
公共语音加载(activity act ) {
log.d(config.log_tag,' Starting loading ' );
loading dialog=newprogressdialog (act;
loadingDialog.setTitle ('正在加载数据.';
loadingDialog.setMessage ('请稍等.');
loadingDialog.show (;
}
//*
*退出加载对话框
*/
公共语音停止加载
log.d(config.log_tag,' Stop loading ' );
if (加载诊断!=null ) {
loadingDialog.dismiss (;
}
}
//*
*开始登录检查线程
*/
publicvoidloginthread (finalstringuname,final String upwd )。
common.loading(this ); //开始加载
threadt=newthread(newrunnable () {
@Override
公共语音运行(}
用//get方式传递密码是不好的做法
string URL=string.format (http://www.h cent.com/log in/% s/% s )、uname、upwd );
string data=network.gethttpdata (URL;
//加载完成,发送信息
message msg=load handle.obtain message (status config.loading _ over );
Bundle bu=new Bundle (;
bu.putstring('data ',data );
msg.setdata(bu;
LoadHandle.sendmessage(msg;
}
);
t.start (;
}
//*
*消息通知句柄
*/
publichandlerloadhandle=new handler () {
@Override
公共消息(消息msg )。
if (msg.what==status config.loading _ over ) )//加载完成
if(msg.getdata ().getstring('data ) )//登录成功
}
}
Common.stopLoading (;
}
(;
}