为了账号安全,请及时绑定邮箱和手机立即绑定

Android UI 未在线程中更新

Android UI 未在线程中更新

小怪兽爱吃肉 2021-10-13 15:48:09
在 Log 中工作正常,但在 setText 中不会更改屏幕上的任何内容,也不会发生错误。//within the onCreate method myRef.child(fireUser.getUid()).addListenerForSingleValueEvent(new ValueEventListener() {                @Override                public void onDataChange(@NonNull DataSnapshot dataSnapshot) {                    millis = Long.valueOf(dataSnapshot.child("millis").getValue().toString());                    t1.run();                }                @Override                public void onCancelled(@NonNull DatabaseError databaseError) {                    Intent i = new Intent(getApplicationContext(), SplashActivity.class);                    startActivity(i);                    finish();                }            });//Out of the onCreate method    Thread t1 = new Thread(){            @Override            public void run() {                try {                    long i;                    for(i=System.currentTimeMillis(); i < millis+millis_wait; i=System.currentTimeMillis()) {                        runOnUiThread(new Runnable() {                            @Override                            public void run() {                                long pr = (millis + millis_wait) - System.currentTimeMillis();                                tx_time.setText(""+pr);                                Log.i("TST", "" + pr);                            }                        });                        Thread.sleep(1000);                    }                } catch (InterruptedException e) {                    e.printStackTrace();                }            }        };我应该改变什么?正如我所说,代码正在运行,日志事件正在被完美地调用和执行,唯一不会发生的事情是更新 setText 根本不运行,但也不会出现任何错误。
查看完整描述

1 回答

?
杨魅力

TA贡献1811条经验 获得超6个赞

调用t1.start();您的 UI 线程来运行它


查看完整回答
反对 回复 2021-10-13
  • 1 回答
  • 0 关注
  • 157 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信