1

アラームを使用して処理をトリガーしたい。

以下のコードでは、2つのアラームを設定しようとしました。それらは、ちょうど鳴ったアラームのID番号を示すServiceを表示するaをトリガーします。Notification

最初Alarmがオフになると、aNotificationが表示され、「1」と表示されます。2番目Alarmの場合、Notificationは「2」を表示する必要があります。

Javadocで説明されているように、トリガーされるアラームは1つだけです(同じIntentであるため、2番目のアラームが最初のアラームに置き換わります)。しかし、奇妙なのは、Notification「1」が表示され、2番目が消えたときに表示される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 に答える