如何在用户安装我的应用程序后定期广播事件。
我已经实现了一个广播接收器,它将触发onReceive任务。现在我需要定期广播此事件,以便定期执行任务。
我知道我需要使用AlarmManager。 代码有点像这样。
Intent intent = new Intent(this, MyBroadcastReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
this.getApplicationContext(), 234324243, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
alarmManager.setRepeating(AlarmManager.RTC, 0, 5*1000, pendingIntent);
Q1)如果我没有任何活动,我在哪里放置此代码?我是否将此作为服务实现?
Q2)在这样一个“自创活动”中,我的清单的意图过滤器应该是什么?
PS:实际上我的当前广播接收器正在等待连接改变事件。任务是定期尝试/尝试访问互联网。但我不能仅仅依靠连接变化来触发这项任务。这就是为什么我需要一个计时器来触发此事件或触发onReceive()中的方法。 我知道在这种情况下我的意图过滤器将是“android.net.conn.CONNECTIVITY_CHANGE”
答案 0 :(得分:0)
Q1)如果我没有任何活动,我在哪里放置此代码?
您需要实施一项活动。在用户启动您的活动之前,您的任何应用程序都不会在Android 3.1+上运行。
所以,你运行这段代码:
用户首次运行您的活动
重启(通过BOOT_COMPLETED
BroadcastReceiver
)
将来当用户运行您的活动时,如果您确定没有广播已经过去很长时间,因为用户强制停止您的应用
另外,摆脱getApplicationContext()
,因为你不应该在这里需要它。
Q2)在这样一个“自创活动”中,我的清单的意图过滤器应该是什么?
您不需要一个,因为您的Intent
标识了该组件。