Rya*_*yan 5 multithreading android handlers runnable
我正在通过一本书学习,它给了我这个例子:
Handler handler=new Handler() {
@Override
public void handleMessage(Message msg) {
bar.incrementProgressBy(5);
}
};
Run Code Online (Sandbox Code Playgroud)
和
Thread background=new Thread(new Runnable() {
public void run() {
try {
for (int i=0;i<20 && isRunning.get();i++) {
Thread.sleep(500);
handler.sendMessage(handler.obtainMessage());
}
} catch (Throwable t) {
// just end the background thread
}
}
});
Run Code Online (Sandbox Code Playgroud)
效果很好。但是,在书中进一步说:
如果您不想对 Message 对象大惊小怪,您也可以将 Runnable 对象传递给 Handler,后者将在活动 UI 线程上运行这些 Runnable 对象。...您可以在任何视图(即,任何小部件或容器)上使用这些相同的方法。这稍微简化了您的代码,因为您可以跳过 Handler 对象。
但是没有给出如何通过Runnable对象执行此操作的示例。有人有例子吗?
像这样的东西:
Handler h = new Handler();
Run Code Online (Sandbox Code Playgroud)
Thread background=new Thread(new Runnable() {
public void run() {
try {
for (int i=0;i<20 && isRunning.get();i++) {
Thread.sleep(500);
handler.post(new Runnable() {
public void run() {
bar.incrementProgressBy(5);
}
});
}
}
catch (Throwable t) {
// just end the background thread
}
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4690 次 |
| 最近记录: |