i3geek.com
闫庚哲的个人博客

Android ProgressDialog多线程进度框的实现

1、声明变量

    private Handler handler = new Handler();
    private ProgressDialog progressDialog = null;
    private int result;

 2、在开始进行网络连接时显示进度条对话框

  progressDialog = ProgressDialog.show(MyActivity.this, "请稍等...", "获取数据中...", true);

 3、添加异步操作

	new Thread(new Runnable(){

    @Override
        public void run() {
        //加载数据
            result=0;//初始化状态
            try{
				//要耗时运行的程序
				dosomething();
                result=1;//标记成功运行
            }
            catch(Exception ex){
                result=-1; //标记失败
            }           
         //更新界面
            handler.post(new Runnable() {     
                public void run() {                          
                    if(result==1)
					{
					//耗时程序完成后,进行更新界面
						init();
					}
                    else
                        Toast.makeText(m_context, "连接失败,请检查网络连接", Toast.LENGTH_SHORT).show();    
                }                  
            });
            progressDialog.dismiss();
        }
	}).start();

 示例:

//按钮监听事件
bt_subButton2.setOnClickListener(new OnClickListener()
		{
			@Override
			public void onClick(View v)
			{
				// TODO Auto-generated method stub
				progressDialog = ProgressDialog.show(TianqiMain.this, "请稍等...", "获取数据中...", true);

				new Thread(new Runnable(){
                    @Override
                    public void run() {
                   //加载数据
                         result=0;
                          try{
                              //要耗时运行的程序
							  dosomething();

                             result=1;
                          }
                         catch(Exception ex){
                             result=-1; 
                         }           

                    //更新界面
                         // Update the progress bar 
                         handler.post(new Runnable() {     
                             public void run() {                          
                                 if(result==1)
                                 {
                                	//耗时程序完成后,进行更新界面
									init();
                                 }
                                       else
                                           Toast.makeText(getApplication(), "下载文件失败,请检查网络连接", Toast.LENGTH_SHORT).show();    
                                 }                
                             });
                         progressDialog.dismiss();
                    }}).start();
			}
		});

 

赞(0)
未经允许不得转载:爱上极客 » Android ProgressDialog多线程进度框的实现
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址