小结1中获取android系统程序安装信息封装对象的方法是一个耗时操作。
在这个过程中APP会短暂的没反应,用户会误认为程序有问题!所以这个是非常不友好的现象。
所以,给这个耗时操作添加一个进度条是很有必要。
进度条方法一:使用requestWindowFeature()
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);//给Activity注册进度条功能
setProgressBarVisibility(true);//显示进度条
setProgressBarIndeterminate(false);//关闭进度条
注意:这个进度条的显示方式是在标题栏的上显示的,所以必须显示标题栏
//requestWindowFeature(Window.FEATURE_NO_TITLE);//去标题
进度条方法二:ProgressDialog回话框
技术博文可以阅读:http://blog.csdn.net/caesardadi/article/details/11982721
ProgressDialog pd = ProgressDialog.show(this, "请稍等", "正在搜索...", true, false);//使用静态方式创建并显示
pd.dismiss();//去掉对话框
上面介绍了两种显示进度条的方法,问题就来了,我们在显示了进度条应该在那里关闭显示条呢?
这里就必须用到Handler()这个函数了,这个知识请阅读技术博文:http://mobile.51cto.com/abased-375243.htm
/*创建Handler,调用它的handleMessage()函数类接受信息头,执行操作*/
private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO 自动生成的方法存根
super.handleMessage(msg);
//执行关闭进度条的代码
}
};
我们另外开启线程来执行耗时操作,在耗时操作操作完了我们发送一个信息头:
Handler.sendEmptyMessage(0);//
--------------------------------------------------------------------------------------------------