在使用Runnable时,可能会内存泄露。Runnable是一个匿名内部类,因此它对当前Activity有一个隐式引用。如果Activity在销毁之前,任务还未完成, 那么将导致Activity的内存资源无法回收,造成内存泄漏。那么该怎么解决这种问题呢?代码如下,

 

 
static class MyRunnable implements Runnable {
 
@Override
 
public void run() {
 
//执行任务
 
}
 
}

 

使用 静态内部类,避免了Activity的内存资源泄漏。

【注意一:关于命名】

在创建Thread 对象的时候可以为该Thread对象指定一个名字

【注意二:Thread的构造方法】

Runnable对象作为Thread对象的target,Runnable实现类里面包含run方法仅仅作为执行体。也就是说Thread类的作用是把run方法包装成线程的执行体。

实际运行的线程对象依然是Thread实例,只是该Thread线程负责执行其target的run方法。

posted on 2018-07-11 15:12  小卖部程序员  阅读(113)  评论(0编辑  收藏  举报