我的Thread
存在问题,线程没有启动,我也不知道它为什么不运行。
这是我的代码,
public class MainActivity extends AppCompatActivity {
TextView tv;
int seg=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv=(TextView)findViewById(R.id.reloj);
}
boolean on=false;
public void inicia(View view){
if(!on){
tiempo.start();
on=true;
}
}
Thread tiempo=new Thread(){
public void run(){
try{
while(true){
Thread.sleep(1000);
seg++;
tv.setText(seg+"");
}
}catch (InterruptedException e){
}
}
};
}
打印此错误 只有创建视图层次结构的原始线程才能触及其视图。
答案 0 :(得分:0)
首先我假设您在xml中设置onClick以将inicia设置为按钮的单击处理程序。否则,这是你问题的一部分。
你的线程处于无限循环中。 while循环只有在出于某种原因发生中断时才会退出,并且没有任何东西会这样做。如果你想每秒发布一次accio,帖子需要在while循环中。
答案 1 :(得分:0)
while(true){
Thread.sleep(1000);
}
线程一直在睡觉。
答案 2 :(得分:0)
好的,试试吧,
将从主循环器线程创建线程。因此,您的textview将仅由mainlooper线程更新。当您创建线程时,它将开始成为另一个线程。它与MainLooper线程无关,您必须使用Handler类更新textView或使用Asynctask或runOnUiThread方法更新文本视图。
runOnUiThread(new Runnable() {
@Override
public void run() {
textview.settext("");
}
});