使用倍数警报

时间:2012-10-30 11:32:49

标签: java android alarm

我想使用闹钟触发一些处理。

在下面的代码中,我尝试设置两个警报。它们触发Service,显示Notification,表示刚刚关闭的警报的ID号。

当第一个Alarm出现时,应显示Notification并显示:“1”。 对于第二个AlarmNotification应显示“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);
}

}

1 个答案:

答案 0 :(得分:0)

尝试为PendingIntent提供不同的请求代码以使其唯一