作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我想在后台线程中运行一些 Runnable。我想使用 Handler 因为它方便延迟。我的意思是
handler.post(runnable, delay);
runnable 应该在 background 线程中运行。是否可以创建这样的处理程序?某处是否有“背景” Looper,或者我该如何创建它?
附:我知道如何使用自定义类扩展 Thread 来做到这一点,但它需要比处理程序方式更多的编码工作。所以请不要发布其他解决方案或类似的东西
handler.post(new Runnable() {
@Override
public void run() {
new Thread() {
@Override
public void run() {
//action
}
}.start();
}
});
如果 Handler 能以“干净”的方式做到这一点,我只是徘徊。
最佳答案
你可以这样做:
private Handler mHandler;
private HandlerThread mHandlerThread;
public void startHandlerThread(){
mHandlerThread = new HandlerThread("HandlerThread");
mHandlerThread.start();
mHandler = new Handler(mHandlerThread.getLooper());
}
然后调用:
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
// Your task goes here
}
},1000);
关于java - 在后台线程中运行处理程序消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18694732/
我是一名优秀的程序员,十分优秀!