private Handler mHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
if(nProgressDialog != null && nProgressDialog.isShowing()){
nProgressDialog.dismiss();
}
switch (msg.what) {
case 1:
System.out.println("-----------1--------------");
System.out.println(msg.getData().getString("s1"));
System.out.println(msg.getData().getString("s2"));
try {
//TODO
} catch (Exception e) {
e.printStackTrace();
}
break;
case 2:
Toast.makeText(getApplicationContext(), "information", Toast.LENGTH_SHORT).show();
break;
case 3:
Toast.makeText(getApplicationContext(), "information", Toast.LENGTH_SHORT).show();
break;
default:
break;
}
super.handleMessage(msg);
}
};
private Runnable mRunnable = new Runnable() {
@Override
public void run() {
try {
Thread.sleep(1000);
} catch (Exception e) {
e.printStackTrace();
}
//TODO 具体操作
Message msg = new Message();
msg.what = 0;
msg.obj = null;
mHandler.sendMessage(msg);
}
};
private Runnable nRunnable = new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
String s1 = "fsdfsgfdsgdfgfdgdhshshs";
String s2 = "fsfsdgdshdhdshrehreherh";
Message msg = new Message();
msg.what = 1;
Bundle bundle = new Bundle();
bundle.putString("s1", s1);
bundle.putString("s2", s2);
msg.setData(bundle);
MainActivity.this.mHandler.sendMessage(msg);
}
};
//如何调用
ProgressDialog nProgressDialog = ProgressDialog.show(MainActivity.this, "正在查询", "操作需要稍长时间,请耐心等待!");
Thread thread = new Thread(mRunnable);
thread.start();
thread = null;
//创建一个新的线程来执行xxx等相应操作
new Thread(new Runnable() {
@Override
public void run() {
try {
//更新UI
String mInfo = "information\n";
mHandler.sendMessage(mHandler.obtainMessage(0, mInfo));
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
private class mThread extends Thread{
public void run() {
// TODO Auto-generated method stub
String s1 = "fsdfsgfdsgdfgfdgdhshshs";
String s2 = "fsfsdgdshdhdshrehreherh";
Message msg = new Message();
msg.what = 1;
Bundle bundle = new Bundle();
bundle.putString("s1", s1);
bundle.putString("s2", s2);
msg.setData(bundle);
MainActivity.this.mHandler.sendMessage(msg);
}
}
//如何调用
ProgressDialog nProgressDialog = ProgressDialog.show(MainActivity.this, "正在查询", "操作需要稍长时间,请耐心等待!");
mThread thread = new mThread();
thread.start();
thread = null;
//注意以下区别
Message msg = new Message();
msg.what = 0;
msg.obj = null;
mHandler.sendMessage(msg);
Message msg = mHandler.obtainMessage();
msg.what = xxx;
msg.arg1 = xxx;
msg.arg2 = xxx;
msg.obj = xxx;
msg.sendToTarget();
//For example
mHandler.obtainMessage(0, arg1, -1).sendToTarget();