Android基础-----Progress Dialog

来源:互联网 发布:数据报和虚电路 编辑:程序博客网 时间:2024/06/05 09:01

ProgressDialog 是Android中很常用的处理后台线程显示前台界面的工具


import android.app.Activity;import android.app.ProgressDialog;import android.os.Bundle;import android.os.Handler;import android.os.Message;import android.util.Log;import android.view.View;import android.widget.Button;import android.widget.Toast;public class TestProgressDialog extends Activity {private ProgressDialog dialog;    /** Called when the activity is first created. */    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.main);        dialog = new ProgressDialog(this);dialog.setMessage("运行中...");dialog.setIndeterminate(false);dialog.setCancelable(true);Button bt1=(Button)findViewById(R.id.button1);bt1.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {// TODO Auto-generated method stubdialog.show();Thread thread = new Thread(new ThreadDemo());//开始线程,程序后台,前台是dialogthread.start();}});    }           final Handler handle = new Handler()    {    @Override    public void handleMessage(Message msg)     {    if(dialog!=null)    {    dialog.dismiss();    }            if( msg.what>0 )    {    Toast.makeText(TestProgressDialog.this, "线程成功结束", Toast.LENGTH_SHORT).show();    }    else    {    Toast.makeText(TestProgressDialog.this, "线程出现意外", Toast.LENGTH_SHORT).show();    }    }       };            Handler endSessionHandle = new Handler()    {    @Override    public void handleMessage(Message msg)     {    finish();    }       };      class ThreadDemo implements Runnable          {      public void run()       {       int what = -1;                        try                   {                  for (int i=0;i<10;i++)                  {                                    Thread.sleep(1000);//10秒的dialog显示                  if (i==9)                  {what=1;//走完之后信号置1                  }                  }                                                }                   catch (Exception e)                   {                  e.printStackTrace();                  Log.e("WeiboPub", e.getMessage());      }      handle.sendEmptyMessage(what);      }            } }          

 

原创粉丝点击