繁体   English   中英

在Android中连续比较两次

[英]Compare two time continously in android

我想每隔一段时间在Android中运行异步任务。

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

取决于用户的选择。

当我启动我的应用程序时,我想获取我的当前时间,并且每隔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 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();
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM