Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何用Android Java制作倒计时器?_Java_Android_Timer_Dialog_Countdown - Fatal编程技术网

如何用Android Java制作倒计时器?

如何用Android Java制作倒计时器?,java,android,timer,dialog,countdown,Java,Android,Timer,Dialog,Countdown,有没有可能制作一个带祝酒或进程对话框的倒计时计时器 当我启动我的应用程序时,会弹出一个带有文本加载的ProgressDialog。。。在加载数据之前,我会关闭对话框和带有文本视图等内容的listview弹出窗口 但在启动时,我会检查我的网络状态。。。当网络连接后,我开始我的后台课程。。但如果不是,我会用计时器每10秒重新启动一次活动(如下所示)。但是,如果没有连接,我将显示一个计数器向下的土司或更改对话框中的文本,例如:(show->)“10后自动刷新…”(“9后自动刷新…”直到“0后自动刷新…

有没有可能制作一个带祝酒或进程对话框的倒计时计时器

当我启动我的应用程序时,会弹出一个带有文本加载的ProgressDialog。。。在加载数据之前,我会关闭对话框和带有文本视图等内容的listview弹出窗口

但在启动时,我会检查我的网络状态。。。当网络连接后,我开始我的后台课程。。但如果不是,我会用计时器每10秒重新启动一次活动(如下所示)。但是,如果没有连接,我将显示一个计数器向下的土司或更改对话框中的文本,例如:(show->)“10后自动刷新…”(“9后自动刷新…”直到“0后自动刷新…”,然后10秒过去..带finish()的行开始

这都在我的onCreate中:

            global.loading_dialog(this); //start progressdialog

        boolean network_connected = false;

    if(check_network.isInternetAvailable(this)) {   
        network_connected = true;
        new connect_task_main().execute(""); //the background class starts
    } else {      
        network_connected = false;
        global.toast.setText("No Internet Connection"); //toast text
        global.toast.show(); //toast start
        global.cancel_toast(2500); //toast stop
    }   

    if (network_connected == false) {
    final Timer timer = new Timer();
            timer.schedule(new TimerTask() {
        public void run() {
            global.spinning_dialog.dismiss(); // when the task activates, then close the dialog
            timer.cancel(); //stop de timer
        finish(); //close the activity
        startActivity(new Intent(main_activity.this, main_activity.class)); //start a new activity
        }
    }, 10000); //after 10 seconds, the task will be active.
} else {
}   
        if (network_connected == false) {
     new CountDownTimer(12000, 1000) {
         public void onTick(long millisUntilFinished) {
             global.toast.setText("Automatic Refresh In: " + millisUntilFinished / 1000);
        global.toast.show();
         }

         public void onFinish() {
            finish();
        startActivity(new Intent(main_activity.this, main_activity.class));
         }
      }.start();
    } else {
    }

您可以使用
处理程序
每秒调用一次,当调用10次时,您可以更改
活动

这样做:

final int i = 0;
Handler handler = new Handler();
Runnable runnable = new Runnable() {
   @Override
   public void run() {
      // Display the time like : textView.setText("Automatic refresh after " + 10 - i +"...");
      if (i == 10)
      {
        global.spinning_dialog.dismiss(); // when the task activates, then close the dialog
        finish(); //close the activity
        startActivity(new Intent(main_activity.this, main_activity.class)); //start a new activity
      }
      else
      {
         i++;
         handler.postDelayed(this, 1000); // Call it 1 second later
      }
   }
};
handler.postDelayed(runnable, 0); // Call it immediatly

Android确实有现成的

,这要感谢@giant00的回答:

我更改了部分代码(如下所示):

            global.loading_dialog(this); //start progressdialog

        boolean network_connected = false;

    if(check_network.isInternetAvailable(this)) {   
        network_connected = true;
        new connect_task_main().execute(""); //the background class starts
    } else {      
        network_connected = false;
        global.toast.setText("No Internet Connection"); //toast text
        global.toast.show(); //toast start
        global.cancel_toast(2500); //toast stop
    }   

    if (network_connected == false) {
    final Timer timer = new Timer();
            timer.schedule(new TimerTask() {
        public void run() {
            global.spinning_dialog.dismiss(); // when the task activates, then close the dialog
            timer.cancel(); //stop de timer
        finish(); //close the activity
        startActivity(new Intent(main_activity.this, main_activity.class)); //start a new activity
        }
    }, 10000); //after 10 seconds, the task will be active.
} else {
}   
        if (network_connected == false) {
     new CountDownTimer(12000, 1000) {
         public void onTick(long millisUntilFinished) {
             global.toast.setText("Automatic Refresh In: " + millisUntilFinished / 1000);
        global.toast.show();
         }

         public void onFinish() {
            finish();
        startActivity(new Intent(main_activity.this, main_activity.class));
         }
      }.start();
    } else {
    }

@RDC也许帮助我更好,试着给出一个好的答案。。?!