HandThread

1,
activity1àactivity2,再返回到activity1时,activity2一定会调用onDestory,但不一定finalize

2,
handler thread通常作为activity2的成员变量。activity2 被释放的时候,handler 一定会被释放,但thread不会释放。所以handler绝对是安全的,不会有垃圾。

3,
activity2onDestory里加上thread.getLooper().quit();
activity2退出时,thread就会停止(但是需要把thread当前动作跑完)



  1. package com.mp;
  2.   import android.app.Activity;
  3.   import android.os.Bundle;
  4.   import android.os.Handler;
  5.   import android.os.HandlerThread;
  6.   public class MyThread2 extends Activity {
  7.   private Handler handler = null;
  8.   @Override
  9.   public void onCreate(Bundle savedInstanceState) {
  10.   super.onCreate(savedInstanceState);
  11.   HandlerThread handlerThread = new HandlerThread("myHandlerThread");
  12.   handlerThread.start();
  13.   handler = new Handler(handlerThread.getLooper());
  14.   handler.post(new MyRunnable());
  15.   System.out.println("Oncreate---The Thread id is :"
  16.   Thread.currentThread().getId());
  17.   setContentView(R.layout.main);
  18.   }
  19.   private class MyRunnable implements Runnable {
  20.   public void run() {
  21.   System.out.println("Runnable---The Thread is running");
  22.   System.out.println("Runnable---The Thread id is :"
  23.   Thread.currentThread().getId());
  24.   try {
  25.   Thread.sleep(6000);
  26.   } catch (InterruptedException e) {
  27.   // TODO Auto-generated catch block
  28.   e.printStackTrace();
  29.   }
  30.   }
  31.   }
  32.   }
复制代码
  在这个demo中,用到了HandlerThread,在HandlerThread对象中可以通过getLooper方法获取一个Looper对象控制句柄,我们可以将其这个Looper对象映射到一个Handler中去来实现一个线程同步机制。于是就有以下结果;
  1:控制台的输出: Oncreate---The Thread id is :1
  Runnable---The Thread is running
  Runnable---The Thread id is :10
  2:程序启动后,我们立刻看到main.xml中的内容。
  这样就达到了多线程的结果。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值