线程初试:
- 在某一个线程运行时间过长时,重启一个新后台线程。
- 为防止用户再次触发,重启两个相同的线程相互堵塞,使用ProgressDialog锁死主线程。
- 由于ProgressDialog对象在两个线程中是共有的,可以通过ProgressDialog对象传递后台线程运行结束的信息即ProgressDialog对象在后台线程调用dismiss()方法。
(//Android规定不能在自己创建的线程中进行有关UI的任何操作,所以我自己取名叫后台线程,当然除了上述的ProgressDialog对象的dismiss()方法)
代码实例:
class UpdateAction implements Action {
ProgressDialog pd;
@Override
public void execute() {
// TODO 自动生成的方法存根
AlertDialog.Builder builder = new AlertDialog.Builder(MenuActivity.this);
builder.setTitle("更新");
builder.setItems(new String[] { "One", "Two", "Three" },
new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO 自动生成的方法存根
pd = new ProgressDialog(MenuActivity.this);
pd.setTitle("稍等片刻");
pd.setMessage("一会就好,相信我没死机~");
pd.show();
new Thread() {
@Override
public void run() {
super.run();
try {
Thread.sleep(100000);
pd.dismiss();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}.start();
}
});
AlertDialog dialog = builder.create();
dialog.show();
}
}
谢谢!