我的应用程序中有一个特定的代码来检查连接等。我希望该代码每 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);
}
您可以使用 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);
}
}