我试图在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 :(得分:0)
您是否注册了接收器?根据文档(http://developer.android.com/reference/android/content/BroadcastReceiver.html),您需要通过调用Context.registerReceiver()来注册它,或者通过AndroidManifest.xml中的标记静态发布实现。
答案 1 :(得分:0)
使用AlarmManager
代替并安排第二天午夜的BroadCast意图。声明您在Manifest中用作PendingIntent目标的BroadcastReceiver。
注意:当设备关闭时,警报会丢失,因此您应该在重新启动后检查日期,并在需要时重新编程警报。