在后台进程弹Toast,使用方案有:由UI线程传入一个Activity参数、View参数或者Handler参数,使用Activity.runOnUiThread(Runnable)、View.post(Runnable)或者Handler.sendMessage()的方法。
这样做有可能引发内存泄露。避免内存泄露的方案,使用Handler.post()和Handler.obtainMessage().sendToTarget():
new Thread(){
@Override
public void run(){
// Looper.prepare();
new Handler(Looper.getMainLooper()).post(new Runnable() {
@Override
public void run() {
Toast.makeText(getApplicationContext(),"test1",Toast.LENGTH_SHORT).show();
}
});
}
}.start();
new Thread(){
@Override
public void run(){
// Looper.prepare();
new Handler(Looper.getMainLooper()){
@Override
public void handleMessage(Message msg){
Toast.makeText(getApplicationContext(),"test2",Toast.LENGTH_SHORT).show();
}
}.obtainMessage().sendToTarget();
}
}.start();