在项目使用 Handler.postDelayed() 延时执行任务,却发现无效,代码如下:
private Handler mHandler = new Handler();
boolean ret = mHandler.postDelayed(new Runnable() {
@Override
public void run() {
}
}, delay);
Log.d(“Nat”, “postDelayed:” + ret);
修改后的代码如下:
private Handler mHandler = new Handler(Looper.getMainLooper());
boolean ret = mHandler.postDelayed(new Runnable() {
@Override
public void run() {
}
}, delay);
Log.d(“Nat”, “postDelayed:” + ret);
总结:需要给Handler设置一个主线程的 looper。
在使用Handler.postDelayed()进行延时任务时遇到无效问题,通过为Handler设置主线程的Looper解决。本文分享了修改前后的代码示例,帮助开发者理解如何正确使用Handler。
490

被折叠的 条评论
为什么被折叠?



