【问题标题】:why does Just the last alarm sat have been worked为什么 Just last alarm sat 已经奏效
【发布时间】:2014-10-08 04:59:47
【问题描述】:

我有一个使用警报管理器的项目。许多 avtivity 设置警报,然后当警报响起时,以 AlarmSetter 名义的特定活动开始显示警报并设置新的(下一个)警报和打盹警报(如果用户需要)。我的问题只是设置的最后一个警报。这意味着所有活动设置警报,但最后一个警报设置已起作用。例如,在警报设置器中,如果用户选择“snooz”按钮,则主警报不起作用(只是 snooz 也可以工作 = 最后一个警报坐)。 我在 G 类(通用)中设置了警报管理器,并在活动警报.java 中使用和设置警报

这是我的 G 班:

public class G extends Application {
 public static AlarmManager          alarmManager;
@Override
public void onCreate() {
    super.onCreate();
    context = getApplicationContext();
    inflater = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
}
}

警报设置器 Java IS:

public class ActivityAlarm extends ActivityMain {
@Override
public void onCreate(Bundle savedInstanceState) {
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    super.onCreate(savedInstanceState);
    setContentView(R.layout.alarmshower);

   //at first reminder will start, should register next alarm time :
    long MilisectoAlarmManager = mDbHelper.SetNextTime_andIsactiveYET(DrugRegID);
    if (MilisectoAlarmManager != 0 && IsFor10minlater == 0) {
        Intent intentMain = new Intent(G.context, ActivityAlarm.class);
        intentMain.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
        intentMain.putExtra("DrugID", String.valueOf(DrugRegID));
        intentMain.putExtra("IsItFor10MinLate", String.valueOf(0));
        PendingIntent pendingIntentMain = PendingIntent.getActivity(G.context, 0,    intentMain, PendingIntent.FLAG_UPDATE_CURRENT);
        String AA = mDbHelper.GetStartDateAlarm(DrugRegID);
        Date D = new Date(MilisectoAlarmManager);
        System.out.println("current Date(ms): " + MilisectoAlarmManager);
        G.alarmManager.set(AlarmManager.RTC_WAKEUP, MilisectoAlarmManager,   pendingIntentMain);
    }



//Finished Activing Alarm Manager and switch Off Alarmn
    else if (MilisectoAlarmManager == 0 && IsFor10minlater == 0) {
        mDbHelper.UpdateAlarmSwitch(DrugRegID, false);
    }

    handler.postDelayed(r, HowLongRemainAlarm_var);
    //End CountDown Finished Activity 

    //Procedure for 10 min later button 
    btn10minLater_var.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub
            btn10minLater_var.setBackgroundColor(Color.parseColor("#1174b9"));
            Intent intentFor10min = new Intent(G.context, ActivityAlarm.class);
            intentFor10min.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intentFor10min.putExtra("DrugID", String.valueOf(DrugRegID));
            intentFor10min.putExtra("IsItFor10MinLate", String.valueOf(1));
            PendingIntent pendingIntent10min = PendingIntent.getActivity(G.context, 0,  intentFor10min, PendingIntent.FLAG_UPDATE_CURRENT);

            G.alarmManager.set(AlarmManager.RTC_WAKEUP, new Date().getTime() + 20000,  pendingIntent10min);



            ActivityAlarm.this.finish();
        }
    });

【问题讨论】:

    标签: android alarmmanager


    【解决方案1】:

    我找到了答案!在 PendingIntent.getActivity 中的第二个参数必须在每个警报集中都有不同的!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-24
      • 2016-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多