Android使ALarmManager在特定时间运行&;每天补餐

Android使ALarmManager在特定时间运行&;每天补餐,android,alarmmanager,Android,Alarmmanager,我有一个android应用程序。我想让闹钟在特定时间运行,比如上午10:30和晚上7:30,每天重复,我搜索了很多次,但没有任何东西是工作> \n 我尝试了以下代码: //var public int AM_IS_ON = 1288, PM_IS_ON = 98760, am_hr, pm_hr; private String am; private AlarmManager alarmManager; private SharedPreferences sharedPrefs; private

我有一个android应用程序。我想让闹钟在特定时间运行,比如上午10:30和晚上7:30,每天重复,我搜索了很多次,但没有任何东西是工作> \n 我尝试了以下代码:

//var
public int AM_IS_ON = 1288, PM_IS_ON = 98760, am_hr, pm_hr;
private String am;
private AlarmManager alarmManager;
private SharedPreferences sharedPrefs;
private PendingIntent pendingIntent;
//////after OnCreate() Method//////
sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
    am_hr = Integer.parseInt((sharedPrefs.getString("am_hr", "7")));
    pm_hr = Integer.parseInt((sharedPrefs.getString("pm_hr", "5")));
    boolean AM = sharedPrefs.getBoolean("isAM", true);
    boolean PM = sharedPrefs.getBoolean("isPM", true);
    boolean on_or_off = sharedPrefs.getBoolean("alarm_on_or_off", false);
    if (on_or_off) {
        if (AM) {
            SetAlarm(am_hr, AM_IS_ON, PM_IS_ON);

    } else {
        Toast.makeText(MainActivity.this, R.string.alarm_is_off, Toast.LENGTH_SHORT).show();
    }


public void SetAlarm(int hr, int am_uid, int pm_uid) {
    alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    am = "AM";
    Log.e("MyActivity", "Alarm On");
    Calendar calendar = Calendar.getInstance();
    calendar.set(Calendar.HOUR_OF_DAY, hr);
    calendar.set(Calendar.MINUTE, 0);
    calendar.set(Calendar.SECOND, 0);
    Intent myIntent = new Intent(MainActivity.this, AlarmReceiver.class);
    if (am.equals("AM")) {
        am = "PM";
        Log.e("MyActivity", "AM On");
        calendar.set(Calendar.AM_PM, Calendar.AM);
        pendingIntent = PendingIntent.getBroadcast(MainActivity.this, am_uid, myIntent, Intent.FILL_IN_ACTION);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
    }
    if (am.equals("PM")) {
        Log.e("MyActivity", "PM On");
        calendar.set(Calendar.AM_PM, Calendar.PM);
        pendingIntent = PendingIntent.getBroadcast(MainActivity.this, pm_uid, myIntent, Intent.FILL_IN_ACTION);
        alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
    }
}
&这是我的接受者:

public class AlarmReceiver extends WakefulBroadcastReceiver {

@Override
public void onReceive(final Context context, Intent intent) {
    //this will update the UI with message
    MainActivity inst = MainActivity.instance();
    //this will sound the alarm tone
    //this will sound the alarm once, if you wish to
    //raise alarm in loop continuously then use MediaPlayer and setLooping(true)
    Uri alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_ALARM);
    if (alarmUri == null) {
        alarmUri = RingtoneManager.getDefaultUri(RingtoneManager.TYPE_NOTIFICATION);
    }
    Ringtone ringtone = RingtoneManager.getRingtone(context, alarmUri);
    ringtone.play();

    //this will send a notification message
    ComponentName comp = new ComponentName(context.getPackageName(),
            AlarmService.class.getName());
    startWakefulService(context, (intent.setComponent(comp)));
    setResultCode(Activity.RESULT_OK);
}
}

问题是当我打开MainActivity时,SetAlarm()方法>>会触发PM&AM警报。 我想要的是在指定的时间内设置闹钟。我怎样才能设置闹钟