广播接收机每分钟检查一次时间

时间:2019-02-13 05:54:22

标签: java android broadcastreceiver android-alarms

我想每分钟检查一次制作警报应用的时间,但是当我在接收器中时

<action android:name="android.intent.ACTION_TIME_CHANGED"/>
                <action android:name="android.intent.ACTION_TIME_TICK"/>
                <action android:name="android.intent.action.TIME_TICK"/>

并将其放入广播接收器

@Override
    public void onReceive(Context context, Intent intent)
    {
        Toast.makeText(context,"changed",Toast.LENGTH_LONG)
            .show();

    }

我的应用无法正常工作或无法执行任何操作 我搜索的次数越来越多,但是没有什么用,希望有人帮助我

1 个答案:

答案 0 :(得分:0)

从编写<action android:name="android.intent.ACTION_TIME_CHANGED"/>的方式来看,您似乎正在尝试在BroadcastReceiver中注册Manifest.xml

但是,我将直接从文档中引用以下内容:

  

ACTION_TIME_TICK

     

广播操作:当前时间已更改。每分钟发送一次。您不能通过清单中声明的​​组件来接收此消息,只能通过向Context.registerReceiver()进行显式注册来实现。

     

-https://developer.android.com/reference/android/content/Intent.html#ACTION_TIME_TICK

您只能通过在BroadcastReceiverregisterReceiver()之类的Activity方法中注册Service来接收此广播。

但是,我想提一提,如果您打算创建“闹钟”应用,则应避免使用此广播。

每分钟不断获取时间可能会耗尽大量电池,尤其是在闹钟响了一段时间的情况下。

相反,您应该考虑通过JobSchedulerAlarmManager之类的服务安排警报。