在 android 中连续比较两个时间

Compare two time continously in android

我想 运行 每间隔 Android 异步任务。

我的间隔是= { 15 分钟,30 分钟,1 小时......等

取决于用户的选择。

当我启动我的应用程序时,我想获取我的当前时间,并且在每 n 个间隔之后我想执行异步任务

   int intv = 15;
   SimpleDateFormat sd = new SimpleDateFormat(
            "HH:mm:ss");
    Date date = new Date();
    sd.setTimeZone(TimeZone.getTimeZone("GMT+05:30"));
    System.out.println(sd.format(date));
    String currenttime = sd.format(date);
    Date myDateTime = null;
    try
      {
        myDateTime = sd.parse(currenttime);
      }
    catch (ParseException e)
      {
         e.printStackTrace();
      }
    System.out.println("This is the Actual        Date:"+sd.format(myDateTime));
    Calendar cal = new GregorianCalendar();
    cal.setTime(myDateTime);

            cal.add(Calendar.MINUTE , intv ); //here I am adding Interval
    System.out.println("This is Hours Added Date:"+sd.format(cal.getTime()));
    try {
        Date afterintv = sd.parse(sd.format(cal.getTime()));
        if(afterintv.after(myDateTime)){  //here i am comparing 
            System.out.println("true..........");
            new SendingTask().execute;  //this is the function i have to execute
        }
    } catch (ParseException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

但我不知道该怎么做。

如果你想在一段时间后 运行 AsyncTask,你可以在你的 AsyncTask 中使用 Thread.sleep。在本例中是 SendingTask class。这是一个示例:

class SendingTask extends AsyncTask{

    // Interval is in milliseconds
    int interval = 1000;

    public SendingTask(int interval) {
        // Setting delay before anything is executed
        this.interval = interval;
    }

    @Override
    protected Object doInBackground(Object[] params) {
        // Wait according to interval
        try {
            Thread.sleep(interval);
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        return null;
    }

    @Override
    protected void onPostExecute(Object o) {
        super.onPostExecute(o);
        // update UI and restart asynctask
        textView3.setText("true..........");
        new SendingTask(3000).execute();
    }
}