在日期更改监听器

时间:2014-02-10 10:32:49

标签: java android listener

我的任务是在每次更改日期时(每隔12点)触发一次刷新或重置应用程序的方法。我试图在网上搜索答案,但我找不到任何东西。我可以使用android中的任何方法/或监听器吗?或任何方法? 有什么建议吗?

2 个答案:

答案 0 :(得分:3)

是的,您可以在Android上收听日期/时间更改。为此,请在您的活动中明确注册以下意图过滤器BroadcastReceiver

android.intent.action.ACTION_TIME_TICK

此意图每分钟发送一次。您无法通过清单中声明的​​组件接收此内容,但只能通过Context.registerReceiver()明确注册它。

您的Receiver(内部)课程:

private final MyDateChangeReceiver mDateReceiver = new MyDateChangeReceiver();

public class MyDateChangeReceiver extends BroadcastReceiver{

    @Override
    public void onReceive(final Context context, Intent intent) {

        // compare current time and decide if it's 12 AM
        Log.d("MyDateChangeReceiver", "Time changed");

    }
}

在onResume方法中注册:

registerReceiver(mDateReceiver, new IntentFilter(Intent.ACTION_TIME_TICK));

并且不要忘记在onPause方法中取消注册:

unregisterReceiver(mDateReceiver);

答案 1 :(得分:0)

你必须在每个确定的时间间隔检查背景中的系统时间&如果您所需的时间(凌晨12:00)与系统时间匹配,那么请执行您必须执行的操作。对于此任务,您必须使用异步任务或警报管理器。如果我没有错,那么这将是您的解决方案问题希望这能帮到你。