android:简单的闹钟

时间:2011-03-30 19:27:17

标签: android android-activity alarm alarmmanager

我正在写简单的闹钟。它包含带有ListView的MainActivity,带唤醒消息的WakeActivity和播放声音的PlayerService。我使用以下代码设置闹钟:

Intent i = new Intent(context, WakeupActivity.class);
    i.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP|Intent.FLAG_ACTIVITY_SINGLE_TOP);
    PendingIntent pendingIntent = PendingIntent.getActivity(context, a.getId(), i, 0);
    Calendar cal = getNextAlarm();
    if(cal!=null){
        alarmManager.set(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), pendingIntent);
        if(toast) showToast(cal);
    }

在android清单中,WakeupActivity被定义为

android:launchMode="singleTask"

在onCreate方法中我初始化关闭按钮。在onResume中,我启动了PlayerService

Intent i = new Intent(this, PlayerService.class.); startActivity(i);

当用户点击关闭按钮时,我调用fnish();,最后,在onPause()中,我停止了PlayerService。它有效,但有一个案例我无法理解。

  1. 我设置闹钟并将主要活动留在顶部。 WakeupActivity和PlayerService成功启动。当我按下关闭按钮时,我回到MainActivity,一切正常。
  2. 我设置闹钟并按下主页按钮。 WakeupActivity和PlayerService成功启动。当我按下关闭按钮然后音乐停止并且onDestroy()用于WakeupActivity调用(如1例)...看起来很好但是当我按住主页按钮并选择我的应用程序然后我回到WakeupActivity并且音乐再次开始!我勒个去?我完成了那项活动!为什么这样?请帮忙!

0 个答案:

没有答案