我有 2 个活动,一个主要活动和 SetAlarm 活动。我从 Main 调用 SetAlarm Activity。当我设置警报时,我创建了一个我的 main 实例。如何在不创建 Main 的另一个实例的情况下设置警报,或者在设置警报之前杀死 main?对此很陌生。我已经阅读了几个警报管理器示例,但它们似乎都建立了一个新的意图,我认为这就是创建我的 2 个实例的原因。这就是你设置闹钟的方式。它确实熄灭了。
这是我从 Main 调用 SetAlarm 的方式:
public void setAlarm(View view) {
Intent intent = new Intent(this, SetAlarmActivity.class);
startActivityForResult(intent, 2);
}
这是我设置警报的方法:
public void setUpAlarm() {
if (VERBOSE) Log.v(TAG, "+++ IN setUpAlarm +++");
PLAY_MUSIC = "Y";
Intent intentAlarm = new Intent(this, MainActivity.class);
intentAlarm.putExtra("playMusic",PLAY_MUSIC);
intentAlarm.putExtra("mPos", mPos);
intentAlarm.putExtra("result",ALARM_SET);
setResult(RESULT_OK,intentAlarm);
pIntent = PendingIntent.getActivity(this, 12345,
intentAlarm, PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager)(this.getSystemService( Context.ALARM_SERVICE ));
am.set(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(), pIntent );
} // setAlarmPlaySong
我主要切断了警报:
@Override
public void onResume() {
if (VERBOSE) Log.v(TAG, "+++ IN onResume +++");
super.onResume();
Intent intent = getIntent()
if (intent.hasExtra("playMusic") && intent.hasExtra("mPos")) {
playMusicFlag = intent.getStringExtra("playMusic");
mPos = intent.getIntExtra("mPos", 0);
if (playMusicFlag.equalsIgnoreCase("Y")) {
if (VERBOSE) Log.v(TAG, "+++ playMusicFlag is SET+++");
playSongs();
showStopAlarmButton();
} // if
}
}