2

イベントを作成し、イベントのアラームを設定するアプリに取り組んでいます。アラームをキャンセルする方法を知る必要があります。私はそれで問題を抱えています。誰でも私を助けてください、ありがとう。

更新
コードを投稿しました。以下のコードを参照してください。AlarmClass.java

Button buttonCancel = (Button) findViewById(R.id.btnCancel);
        buttonCancel.setOnClickListener(new Button.OnClickListener()
        {

            @Override
            public void onClick(View arg0)
            {
                Intent i = new Intent(AlarmClass.this, AlarmReceiver.class);
                PendingIntent pendingIntent = PendingIntent.getBroadcast(AlarmClass.this, 1, i, 0);



                AlarmManager aManager = (AlarmManager) getSystemService(ALARM_SERVICE);
                aManager.cancel(pendingIntent);

                Toast.makeText(getApplicationContext(), "Alarm has been cancelled", Toast.LENGTH_SHORT).show();
            }


        });
4

3 に答える 3

1

cancel()AlarmManagerの Alarm By メソッドをキャンセルするだけです。

AlarmManager am; 
.
.
.
am.cancel ( PendingIntent operation ); 

例えば

Intent intent = new Intent(this, AlarmReceive.class);
PendingIntent sender = PendingIntent.getBroadcast(this,0, intent, 0);
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);

alarmManager.cancel(sender);

PendingIntentのオブジェクトを cancel() メソッドに渡す必要があります。

于 2012-09-03T03:38:42.730 に答える
0

サービスを停止するには、次を使用できますstopSelf();

于 2012-09-03T07:02:19.280 に答える
0

ちょっとばかげていますが、AlarmManager は実際には cancel() の呼び出し時に PendingIntent を送信することに注意してください。なぜこれを行うのか、私にはわかりません。あなたがこれに気づいているかどうかはわかりませんが、私はそうです。これを修正するために、PendingIntent 自体で cancel() を呼び出しました。

   myntent = new Intent(SetActivity.this,AlarmActivity.class);
   pendingIntent = PendingIntent.getActivity(CellManage_AddShowActivity.this,
             id, myntent,PendingIntent.FLAG_UPDATE_CURRENT);
   pendingIntent.cancel();
   alarmanager.cancel(pendingIntent);
于 2013-10-24T01:25:24.803 に答える