public void SetAlarm(Context context, int sec)
{
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, Alarm.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
am.set(AlarmManager.RTC, System.currentTimeMillis()+1000*5 , pi);
i = new Intent(context, Alarm.class);
pi = PendingIntent.getBroadcast(context, 0, i, 0);
am.set(AlarmManager.RTC, System.currentTimeMillis()+1000*10 , pi);
}
Run Code Online (Sandbox Code Playgroud)
为什么onReceive只在10秒后工作一次?
警报管理器将取消第一个警报,因为已向警报管理器提供具有相同信息的待处理意图.任何类型的警报,其Intent与此匹配的警报(由filterEquals(Intent)定义)将被取消.
如果要设置多个警报(重复或单个),则只需要使用不同的requestCode创建其PendingIntents.如果requestCode相同,则新警报将覆盖旧警报.
试试这个......
public void SetAlarm(Context context, int sec)
{
AlarmManager am=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, Alarm.class);
PendingIntent pi = PendingIntent.getBroadcast(context, 0, i, 0);
am.set(AlarmManager.RTC, System.currentTimeMillis()+1000*5 , pi);
i = new Intent(context, Alarm.class);
pi = PendingIntent.getBroadcast(context, 1, i, 0); // new request code
am.set(AlarmManager.RTC, System.currentTimeMillis()+1000*10 , pi);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3385 次 |
| 最近记录: |