线程处理中looper和while循环之间的区别是什么? 我尝试了这个代码,就像我使用带有Looper的Handler一样:
public abstract class han {
public abstract void handleMessage(Message message);
public void sendMessage(Message message)
{
handleMessage(message);
}
}
然后:
while (0 == 0) {
h = new han() {
@Override
public void handleMessage(Message message) {
Toast.makeText(thr.this, "mm", Toast.LENGTH_SHORT).show();
}
};
实际上," han"是一个类似Handler的类,但由于Handler错误没有looper,我做了一个特殊的类来做那个叫做" han"。和" h"是一个全局变量
答案 0 :(得分:0)
简而言之,looper是一个在Thread中运行的便利类。 来自文档:http://developer.android.com/reference/android/os/Looper.html
"用于为线程运行消息循环的类。"所以它说的是一个looper允许你向实例化的线程发送消息。我现在可能是,但我不认为它会消耗资源,直到它收到消息,可能是通过looper内部的智能同步/等待组合。
现在你的while循环将无限期地运行并创建新的han对象,这是很常见的。您应该看到Garbage收集器运行以收集这些对象。但是,是的,您的代码应该可以工作,并且您应该能够接收消息,但需要花费大量的资源。 (如果你不在while循环中运行,你的线程就会完成,什么都不会发生,这就是looper阻止的。)