学习了这个,对Android的主线程(UI线程)了解更深了。本人是小小白,哈哈。
package com.yeekaze.progressdialogdemo;
import android.app.Activity;
import android.app.ProgressDialog;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.widget.Toast;
public class MainActivity extends Activity {
private ProgressDialog pd;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
pd = new ProgressDialog(this);
pd.setTitle("切换APN接入点");
pd.setMessage("正在切入中。。。。");
pd.show();
Method();// 耗时的方法
Toast.makeText(this, "你说不会先执行这里呢?", Toast.LENGTH_SHORT).show();
}
//让线程休眠
private void Method() {
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(5000);
Message msg = new Message();
msg.arg1 = 1;
handler.sendMessage(msg);// 执行线程后发送消给handler
// handler.dispatchMessage(msg);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {// handler接收到消息后就会执行此方法
switch (msg.arg1) {
case 1:
if (pd != null)
pd.dismiss();// 关闭ProgressDialog 和cancel有什么区别呢。。。
break;
default:
break;
}
}
};
}
运行图片