如何循环(每 60 秒重新运行代码)

问题描述 投票:0回答:1

我的应用程序中有一个特定的代码来检查连接等。我希望该代码每 60 秒(1 分钟)执行一次。我不太明白 postDelayed() 函数。有人能帮助我吗?代码如下。

if (App.connection_status == 2) {
        ConnectionTimer.cancel();
        SharedPreferences SharedAppDetails = getSharedPreferences("settings_data", 0);
        SharedPreferences.Editor Editor = SharedAppDetails.edit();
        Editor.putString("connection_time", String.valueOf(App.CountDown));
        Editor.apply();

   if (App.CountDown >= 20) {
   SharedPreferences settings = getSharedPreferences("settings_data", 0);
   String Rate = settings.getString("rate", "false");
if (Rate.equals("false")) {
        Handler handler = new Handler();
        handler.postDelayed(new Runnable() {

 @Override
     public void run() {
        Intent Servers = new Intent(MainActivity.this, ReviewActivity.class);
                       startActivity(Servers);
                       overridePendingTransition(R.anim.anim_slide_in_right, R.anim.anim_slide_out_left);
                       }
                         }, 1000);
                            }
                              }

                       startAnimation(MainActivity.this, R.id.tv_main_count_down, R.anim.fade_out_1000, false);
                       startAnimation(MainActivity.this, R.id.iv_progress_bar, R.anim.fade_out_1000, false);
                       startAnimation(MainActivity.this, R.id.la_animation, R.anim.fade_out_1000, false);
     }
java android loops android-studio postdelayed
1个回答
0
投票

您可以使用 TimerTask 类扩展具有此连接检查方法的类。然后重写 run 方法并添加它应该重复运行的方法。最后,在您的 main 方法中,创建一个 Timer 并告诉它您希望它每 x 秒运行一次此任务。

public class JobToDo extends TimerTask {
    public void checkConnection(){
        System.out.println("Checking connection...");
    }

    @Override
    public void run() {
        checkConnection();
    }

    public static void main(String[] args) {
        Timer timer = new Timer();
        timer.schedule(new JobToDo(), 0, 1000);
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.