android中的计时器崩溃,抛出java.util运行时错误
我正在尝试设计一个简单的计时器,它每秒钟运行一次,并将我的按钮文本更新到剩余时间。 但当我跑的时候,它一直在崩溃。 我所知道的是我的按钮有问题,因为我的代码恰好在第一秒钟运行,然后在那之后崩溃。 这是我的java代码android中的计时器崩溃,抛出java.util运行时错误,android,Android,我正在尝试设计一个简单的计时器,它每秒钟运行一次,并将我的按钮文本更新到剩余时间。 但当我跑的时候,它一直在崩溃。 我所知道的是我的按钮有问题,因为我的代码恰好在第一秒钟运行,然后在那之后崩溃。 这是我的java代码 import java.util.Timer; import java.util.TimerTask; import android.app.Activity; import android.os.Bundle; import android.util.Log; import an
import java.util.Timer;
import java.util.TimerTask;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
import android.widget.Button;
public class information extends Activity {
Timer timer;
public Button button;
private int min = 5;
private int sec = 0;
public void onCreate(Bundle bundle){
super.onCreate(bundle);
setContentView(R.layout.information);
button = (Button) findViewById(R.id.gettime);
timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
if (sec == 0){
sec = 60;
min--;
}
sec--;
if (sec >=10)
Log.d("time",min+":"+sec);
else Log.d("time",min+":0"+sec);
button.setText("ankur");
}
}, 10, 1000);
}
public void onPause(){
super.onPause();
finish();
}
public void onBackPressed(){
super.onBackPressed();
finish();
}
}按钮.setText(“ankur”)代码>无法在计时器中更新ui。计时器任务在不同的线程上运行。您只能在ui线程上更新ui
你的选择
使用处理程序
使用runOnUiThread
您可以根据需要使用倒计时装置
您可以使用runOnUiThread
作为
runOnUiThread(new Runnable() {
public void run() {
button.setText("ankur")
}
});
对于处理程序
这是因为您正在从此行的后台线程修改UI:
button.setText("ankur");
您必须使用如下处理程序:
// in your activity and then
private Handler handler = new Handler();
在您的TimerTask中:
handler.post(new Runnable() {
public void run(){
// do your UI job
}
});
你能把你的logcat错误写出来吗?