我试着每隔5分钟播放一次祝酒词,并播放一首警示歌曲,但它不起作用,什么也没有发生。
清单:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
..
<receiver android:name=".AlarmReceiver"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"></action>
</intent-filter>
</receiver>
MainActivity:
alarmMgr = (AlarmManager)MainActivity.this.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
alarmIntent = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);
// Set the alarm to start at 8:30 a.m.
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(System.currentTimeMillis());
calendar.set(Calendar.HOUR_OF_DAY, 8);
calendar.set(Calendar.MINUTE, 30);
// setRepeating() lets you specify a precise custom interval--in this case,
// 5 minutes.
alarmMgr.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
1000 * 60 * 5, alarmIntent);
AlarmReceiver:
public class AlarmReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
Toast.makeText(context, "OnReceive alarm test", Toast.LENGTH_SHORT).show();
}
}
如果有什么东西丢失了或者有什么地方错了,你有什么想法吗?
发布于 2019-04-19 07:22:13
setRepeating
在功能上被弃用(从api 19开始),取而代之的是最小间隔为15分钟的setInexactRepeating
,并且在批量处理多个告警时可能会增加额外的延迟。
如果你想要这样的侵略性警报,你需要使用单次setExact
警报,并在onReceive
中重新安排下一个警报。
https://stackoverflow.com/questions/55754696
复制相似问题