用于定时器的Android线程

用于定时器的Android线程

public class MainActivity extends Activity{int min, sec;/** Called when the activity is first created. */@Overridepublic void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    min = 5;
    sec = 0;
    final TextView timer1 = (TextView) findViewById(R.id.timer1);
    timer1.setText(min + ":" + sec);
    Thread t = new Thread() {
        public void run() {
                sec-=1;
                if (sec<0) {
                    min-=1;
                    sec=59;
                }
                timer1.setText(min + ":" + sec);
                try
                {
                    sleep(1000);
                }
                catch (InterruptedException e)
                {}
            }
    };
    t.start();}}

这是Java中线程的代码,但它不起作用。你能帮帮我吗?

它是一个计时器,从5分钟下降到0:00。



www说
浏览 245回答 2
2回答

哈士奇WWW

您正在尝试更新UI Thread背景Thread带着timer1.setText(但你做不到。你需要用runOnUiThread(),&nbsp;AsyncTask,&nbsp;CountDownTimer或者类似的东西。见这个答案的例子runOnUiThread()但唐蒂默对这种事很好。同时,当在上面发布一个问题时,像“它不起作用”这样的语句。非常模糊而且往往没有帮助。如果应用程序崩溃,请说明与代码和logcat实际结果相比较的预期结果。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java