使用线程更新textview并停止它

时间:2018-10-31 13:52:01

标签: android java-threads

您好,我正在使用一个线程来设置计时器,但是有一些问题需要停止它。 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);

0 个答案:

没有答案