我有这个......
button = (Button) findViewById(R.id.start_repeating);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Test.this, RepeatingAlarm.class);
PendingIntent sender = PendingIntent.getBroadcast(Test.this, 0, intent, 0);
long firstTime = SystemClock.elapsedRealtime();
firstTime += 1 * 1000;
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, firstTime, 1 * 1000, sender);
if (mToast != null) {
mToast.cancel();
}
mToast = Toast.makeText(Test.this, "repeating_scheduled", Toast.LENGTH_LONG).show();
}
});
button = (Button) findViewById(R.id.stop_repeating);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(Test.this, RepeatingAlarm.class);
PendingIntent sender = PendingIntent.getBroadcast(Test.this, 0, intent, 0);
AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);
am.cancel(sender);
if (mToast != null) {
mToast.cancel();
}
mToast = Toast.makeText(Test.this, "repeating_unscheduled", Toast.LENGTH_LONG).show();
}
});
但它似乎没有正常工作......每次我尝试点击第二个按钮时警报都不会取消...这是我正在使用的BroadcastReceiver ...
public class RepeatingAlarm extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
for(int i=0;i<5;i++)
Toast.makeText(context, "repeating_received " + i, Toast.LENGTH_SHORT).show();
}
}
请有人告诉我有什么问题!谢谢!