handler.postDelayed 不生效

在项目使用 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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容