Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/330.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android Ui未在线程中更新_Java_Android - Fatal编程技术网

Java Android Ui未在线程中更新

Java Android Ui未在线程中更新,java,android,Java,Android,在日志中工作正常,但在setText中不会更改屏幕上的任何内容,也不会发生错误 //within the onCreate method myRef.child(fireUser.getUid()).addListenerForSingleValueEvent(new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot da

在日志中工作正常,但在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();
                }
            }
        };
//在onCreate方法中
myRef.child(fireUser.getUid()).addListenerForSingleValueEvent(新值EventListener()){
@凌驾
public void onDataChange(@NonNull DataSnapshot DataSnapshot){
millis=Long.valueOf(dataSnapshot.child(“millis”).getValue().toString());
t1.run();
}
@凌驾
已取消的公共void(@NonNull DatabaseError DatabaseError){
Intent i=新的Intent(getApplicationContext(),SplashActivity.class);
星触觉(i);
完成();
}
});
//在onCreate方法之外
线程t1=新线程(){
@凌驾
公开募捐{
试一试{
龙我;
for(i=System.currentTimeMillis();i
我应该换什么


正如我所说的,代码正在工作,日志事件正在被调用并完美地执行,唯一没有发生的事情是更新setText不会运行,但也不会因为任何错误而运行。

调用
t1.start()在UI线程中运行它

是否在代码中调用线程对象。你需要申报健康吗?我不太明白,实际上问题已经解决了,我用的是.run()而不是.start(),谢谢!