1

我想使用警报来触发一些处理。

在下面的代码中,我尝试设置两个警报。它们触发一个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);
}

}

4

1 回答 1

0

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

于 2012-10-30T12:50:49.670 回答