后台进程弹Toast的几种方案

在后台进程弹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();

你可能感兴趣的:(Android开发,后台进程弹Toast,内存泄露)