2015-07-03 57 views
0

我试图在Android中使用广播接收器来执行一些代码,当日更改。广播接收器的日更改

这里是我的代码,但不能让它的工作

static { 
    s_intentFilter = new IntentFilter(); 
    s_intentFilter.addAction(Intent.ACTION_TIME_TICK); 
    s_intentFilter.addAction(Intent.ACTION_TIMEZONE_CHANGED); 
    s_intentFilter.addAction(Intent.ACTION_TIME_CHANGED); 
} 


private final BroadcastReceiver m_timeChangedReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     final String action = intent.getAction(); 

     if (action.equals(Intent.ACTION_TIME_CHANGED) || 
       action.equals(Intent.ACTION_TIMEZONE_CHANGED)) 
     { 
      System.out.println("Broadcast Activated"); 
     } 
    } 
}; 

有什么建议?

回答

0

您注册了接收器吗?根据文档(http://developer.android.com/reference/android/content/BroadcastReceiver.html),您需要通过调用Context.registerReceiver()来注册它,或者通过AndroidManifest.xml中的标签静态发布一个实现。

+0

是的,我做到了,忘了把它: @覆盖 \t保护无效的onCreate(捆绑savedInstanceState){ \t \t super.onCreate(savedInstanceState); \t \t \t \t registerReceiver(m_timeChangedReceiver,s_intentFilter); –

+0

您是否注册了清单中的意图? Malthan

+0

另外请记住,只有当用户手动更改时间设置时,才会触发这些操作。 – Malthan

0

改为使用AlarmManager并在第二天午夜安排BroadCast意向。声明您用作Manifest中PendingIntent目标的BroadcastReceiver。

注意:设备关闭时报警会丢失,因此您应该在重新启动后检查日期,并在需要时重新编程报警。