Android 下的多线程
2010-04-19 16:12:00 来源:WEB开发网核心提示:while (mLooper == null) {try {mLock.wait();} catch (InterruptedException ex) {}}}我们开始等待我们的子线程给mLooper赋值,如果不赋值我们就继续等,Android 下的多线程(5),然后我们的子线程在运行run方法之后,在给 mLoop
while (mLooper == null) {
try {
mLock.wait();
} catch (InterruptedException ex) {
}
}
}
我们开始等待我们的子线程给mLooper赋值,如果不赋值我们就继续等,然后我们的子线程在运行run方法之后,在给 mLooper赋值之后,通知worker够着函数中的wait,然后我们的构造函数才能完成,所以我们说:
mAlbumArtWorker = new Worker("album art worker");
这句本身就是阻塞的,它创建了一个子线程,开启了子线程,并且等待子线程给mLooper赋值,赋值完成之后,这个函数才返回,这样才能保证我们的子线程的Looper的获取绝对是正确的,这个构思很有创意。值得借鉴。
特别说明:
有网友说,不需要prepare,Looper.myLooper()也是可以返回值的
更多精彩
赞助商链接