【问题标题】:Android compare to a time to current time continuouslyAndroid 将时间与当前时间连续比较
【发布时间】:2016-08-18 01:38:58
【问题描述】:

我正在制作一个需要连续比较两个日期和时间的应用程序。 我刚刚看到了一些只比较一次的例子。我想我可以使用计时器来重复一个方法,但它似乎效率不高。以前有人这样做过吗?

【问题讨论】:

  • 您可以尝试使用 AsyncTask 以在一定间隔内比较两次。 developer.android.com/reference/android/os/AsyncTask.html
  • 使用 ScheduledExecutorService
  • 我没有制作闹钟应用程序。它只是在用户设置的时间之后向用户显示一些东西。所以 ScheduledExecutorService 似乎不合适。
  • 我正在尝试在 AsyncTask 中使用 while 循环,但是当用户设置很多需要比较的东西时,我担心它会浪费很多内存。

标签: android timer alarm


【解决方案1】:

也许你可以像下面这样使用postDelayed

Handler handler = new Handler(); 
handler.postDelayed(new Runnable() {
    @Override 
    public void run() { 
        compareTime();
    } 
}, 5000); 

将 5000 替换为您自己的间隔毫秒数。

【讨论】:

  • 谢谢!这似乎是最简单的方法。
【解决方案2】:

很简单,你可以使用handler;当第一次检查时间时发送这样的正常消息

 mHandler.sendMessage(mHandler.obtainMessage(CHECK_TIME);

然后从处理程序内部发送延迟消息。

private final Handler handler = new Handler() {

    public void handleMessage(Message msg) {
        switch (msg.what) {
            case CHECK_TIME:
            // Your compare time code here
            // ....
            // Send the delayed message to handler to check time again
            mHandler.sendMessageDelayed(mHandler.obtainMessage(CHECK_TIME),
                DELAY_CHECK_TIME_INTERVAL); 
            break;
        }
    }
}

【讨论】:

  • 有道理。谢谢。
  • 谢谢,如果它有效。请接受回答并投票。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多