我想使用闹钟触发一些处理。
在下面的代码中,我尝试设置两个警报。它们触发Service
,显示Notification
,表示刚刚关闭的警报的ID号。
当第一个Alarm
出现时,应显示Notification
并显示:“1”。
对于第二个Alarm
,Notification
应显示“2”。
如Javadoc中所述,只触发一个警报(它们具有相同的Intent
,因此第二个警报取代第一个警报)。但奇怪的是,Notification
显示“1”并出现在第二个Alarm
熄灭时!看起来警报响起的时间已被修改,但不是额外的。
有什么想法吗?
提前感谢你花时间去帮助我。
public class TestAlarmes extends Activity{
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState){
AlarmManager am;
Intent action;
PendingIntent intent;
long t0;
RecepteurMessageAlarme récepteur;
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// créer le récepteur de message d'alarme
récepteur=new RecepteurMessageAlarme();
// et l'enregistrer en lui demandant de filtrer sur les messages d'alarme
registerReceiver(récepteur,new IntentFilter("GL.TestAlarmes.ALARME"));
// récupérer le service d'alarme
am=(AlarmManager)getSystemService(Context.ALARM_SERVICE);
// créer l'action 1
action=new Intent(this,ServiceAlarme.class);
action.setAction("GL.TestAlarmes.ALARME");
// personnaliser l'action a exécuter
action.putExtra("GL.TestAlarmes.Action",1);
// créer l'intent à lancer lors du déclenchement de l'alarme
intent=PendingIntent.getService(this,0,action,PendingIntent.FLAG_ONE_SHOT);
// prendre l'instant présent
t0=java.lang.System.currentTimeMillis();
// configurer l'alarme
am.set(AlarmManager.RTC_WAKEUP,t0+5000,intent);
// créer l'action 2
action=new Intent(this,ServiceAlarme.class);
action.setAction("GL.TestAlarmes.ALARME");
// personnaliser l'action a exécuter
action.putExtra("GL.TestAlarmes.Action",2);
// créer l'intent à lancer lors du déclenchement de l'alarme
intent=PendingIntent.getService(this,0,action,PendingIntent.FLAG_ONE_SHOT);
// configurer l'alarme
am.set(AlarmManager.RTC_WAKEUP,t0+10000,intent);
}
}
答案 0 :(得分:0)
尝试为PendingIntent
提供不同的请求代码以使其唯一