子线程刷新UI问题

子线程刷新UI问题

final Handler handler= new Handler();

new Thread(){
   @Override
   public void run() {
       super.run();
       try {
           sleep(3000);
       } catch (InterruptedException e) {
           e.printStackTrace();
       }
       //
       handler.post(runnable);
       
   }
}.start();


// 子线程更新UI 需要用到这个方法 好像只能调用一次。
Runnable runnable = new Runnable() {
   @Override
   public void run() {

       pager2.setCurrentItem(index);
       index++;

   }
};



好像只能调用一次,如果不用Handler ,直接运行就报错了,版本用的29. 




正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

1回答
好帮手慕雪 2020-03-06 17:51:07

pager2在不同的版本,确实是有所差别。子线程更新页面UI时,你先暂时放在MainActivity.this.runOnUiThread里执行吧。如果还是解决不了,同学可以先往后面学习,学完第二阶段前两个课程就可以解决了。因为这涉及到线程的通信问题,不是一两句话能说清楚的,需要一个专题来专门讲解。祝:学习愉快

问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师