我想根据所需的日期安排闹钟,例如星期天、星期二、星期四。我已经按时间安排了,但不能按星期做。
下面是代码:

private void StartScheduler(Context context) {

       Calendar startTimmer = Calendar.getInstance();
       startTimmer.setTimeZone(TimeZone.getDefault());
       startTimmer.set(Calendar.HOUR_OF_DAY,sHour);
       startTimmer.set(Calendar.MINUTE,sMinute);
       startTimmer.set(Calendar.SECOND,00);

       AlarmManager alarmManager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
       Intent StartAlarmTime = new Intent(Schedule_details.this, MyAlaramStartReceiver.class);
       PendingIntent pendingIntent1 = PendingIntent.getBroadcast(context, 0, StartAlarmTime, 0);

       alarmManager.set(AlarmManager.RTC_WAKEUP, startTimmer.getTimeInMillis(),pendingIntent1);
       Log.d("<<My-Start-Alarm>>", "ALARM Set To Start At: " + startTimmer.getTime().toLocaleString());
}

最佳答案

答案如下:

public class MyReceiver extends BroadcastReceiver {
DBAdapter mDba;
SQLiteDatabase mDb;
Ringtone rt;
MediaPlayer mp;
AlertDialog.Builder alertbox;
Context ctx;

@Override
public void onReceive(Context context, Intent intent) {

    DBHelper mDbh = new DBHelper(context, null, null, 1);
    mDb = mDbh.getWritableDatabase();
    mDb.setLockingEnabled(true);
    mDba = new DBAdapter(context);
    mDba.open();
    Cursor cr = mDb.query("mReminderEntry", null, null, null, null,
            null, null);
    if (cr.equals(null)) {
        System.out.println("No Data Found");
    } else {
        Date d = new Date();
        Calendar calendar = Calendar.getInstance();
        int day = calendar.get(Calendar.DAY_OF_WEEK);
        String today = null;
        if (day == 2) {
            today = "Monday";
        } else if (day == 3) {
            today = "Tuesday";
        } else if (day == 4) {
            today = "Wednesday";
        } else if (day == 5) {
            today = "Thursday";
        } else if (day == 6) {
            today = "Friday";
        } else if (day == 7) {
            today = "Saturday";
        } else if (day == 1) {
            today = "Sunday";
        }

        int system_hour = d.getHours();
        int system_minute = d.getMinutes();
        cr.moveToFirst();
        for (int i = 0; i < cr.getCount(); i++) {
            if (cr.getString(3).equals(system_hour + ":" + system_minute)
                    && cr.getString(1).equals("Daily")) {
                Intent scheduledIntent = new Intent(context, MyScheduledActivity.class);
                scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(scheduledIntent);

                break;

            } else if (cr.getString(3).equals(
                    system_hour + ":" + system_minute)
                    && cr.getString(1).equals(today)) {

                Intent scheduledIntent = new Intent(context, MyScheduledActivity.class);
                scheduledIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
                context.startActivity(scheduledIntent);

                break;
            } else {
                System.out.println("No Matching");
            }
            cr.moveToNext();
        }
    }
    cr.close();
    mDba.close();
}

}

关于android - 如何在Android中每周安排警报?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22221432/

10-12 05:13