您好,我正在使用一个线程来设置计时器,但是有一些问题需要停止它。 1.当textView的值为0时,如何停止计时器。 2.当我从Firebase获取数据时,我希望计时器每次在问题更新时都重新启动。
thread.stop或thread.interpt无法正常工作。
thread = new Thread(){
@Override
public void run() {
while (!interrupted()){
try {
count--;
Thread.sleep(1000);
runOnUiThread(new Runnable() {
@Override
public void run() {
txt_timer.setText(String.valueOf(count));
if(count==0){
Toast.makeText(Questions.this, "No Answer Selected", Toast.LENGTH_SHORT).show();
}
}
});
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
};
这是我更新问题的功能
private void updateQuestion() {
QuestionRef.child(newId).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
int numberOfQuestions = (int) dataSnapshot.getChildrenCount();
if (numberOfQuestions > id) {
thread.start();
String question =dataSnapshot.child("Question").getValue(String.class);