當前位置: 首頁>>代碼示例>>Java>>正文


Java AlarmManager.setWindow方法代碼示例

本文整理匯總了Java中android.app.AlarmManager.setWindow方法的典型用法代碼示例。如果您正苦於以下問題:Java AlarmManager.setWindow方法的具體用法?Java AlarmManager.setWindow怎麽用?Java AlarmManager.setWindow使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在android.app.AlarmManager的用法示例。


在下文中一共展示了AlarmManager.setWindow方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: addAlarm

import android.app.AlarmManager; //導入方法依賴的package包/類
private void addAlarm(Context context, GregorianCalendar date) {
    int notificationId = new TimelessDate(date).hashCode();
    Log.d("ALARM", "Scheduling alarm " + notificationId);
    PendingIntent p = PendingIntent.getBroadcast(
            context,
            notificationId,
            new Intent(context, AlarmReceiver.class),
            PendingIntent.FLAG_UPDATE_CURRENT);
    try {
        AlarmManager manager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        if (manager != null) {
            if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
                manager.setAlarmClock(new AlarmManager.AlarmClockInfo(date.getTimeInMillis(), p), p);
            } else {
                manager.setWindow(AlarmManager.RTC_WAKEUP,
                        date.getTimeInMillis(),
                        1,
                        p);
            }

            serializeAlarm(context, notificationId);
        }
    } catch (SecurityException e) {
        StringWriter sw = new StringWriter();
        PrintWriter pw = new PrintWriter(sw);
        e.printStackTrace(pw);
        String errMSG = e.getMessage() + "\n" + sw.toString();
        e.printStackTrace();

        Activity act = ActivityHelper.getActivity();
        if (act != null) {
            ErrorDialog.newInstance("ERROR", "Failed to schedule alarm. Did some alarms crash?", errMSG)
                    .show(act.getFragmentManager(), "ALSECERROR");
        }
    }
    Log.d("ALARM", "Alarm ready for "
            + " " + DateUtilities.GERMAN_STD_STIMEFORMAT.format(date.getTime())
            + DateUtilities.GERMAN_STD_SDATEFORMAT.format(date.getTime()));
}
 
開發者ID:dhbw-timetable,項目名稱:dhbw-timetable-android,代碼行數:40,代碼來源:AlarmSupervisor.java

示例2: setAlarmTime

import android.app.AlarmManager; //導入方法依賴的package包/類
public static void setAlarmTime(Context context, long timeInMillis, Intent intent) {
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    PendingIntent sender = PendingIntent.getBroadcast(context, intent.getIntExtra("id", 0),
            intent, PendingIntent.FLAG_CANCEL_CURRENT);
    int interval = (int) intent.getLongExtra("intervalMillis", 0);
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        am.setWindow(AlarmManager.RTC_WAKEUP, timeInMillis, interval, sender);
    }
}
 
開發者ID:wendyltan,項目名稱:EasyTodo,代碼行數:10,代碼來源:AlarmManagerUtil.java

示例3: setAlarm

import android.app.AlarmManager; //導入方法依賴的package包/類
/**
 * @param flag            周期性時間間隔的標誌,flag = 0 表示一次性的鬧鍾, flag = 1 表示每天提醒的鬧鍾(1天的時間間隔),flag = 2
 *                        表示按周每周提醒的鬧鍾(一周的周期性時間間隔)
 * @param hour            時
 * @param minute          分
 * @param id              鬧鍾的id
 * @param week            week=0表示一次性鬧鍾或者按天的周期性鬧鍾,非0 的情況下是幾就代表以周為周期性的周幾的鬧鍾
 * @param eventName       鬧鍾提示事件名字
 * @param eventDetail     鬧鍾提示事件詳情
 * @param soundOrVibrator 2表示聲音和震動都執行,1表示隻有鈴聲提醒,0表示隻有震動提醒
 */
public static void setAlarm(Context context, int flag, int hour, int minute, int id, int
        week, String eventName, String eventDetail, Date eventDate, int soundOrVibrator) {
    AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
    Calendar calendar = Calendar.getInstance();
    long intervalMillis = 0;
    calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get
            (Calendar.DAY_OF_MONTH), hour, minute, 10);
    if (flag == 0) {
        intervalMillis = 0;
    } else if (flag == 1) {
        intervalMillis = 24 * 3600 * 1000;
    } else if (flag == 2) {
        intervalMillis = 24 * 3600 * 1000 * 7;
    }
    SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
    String dateString = formatter.format(eventDate);
    Log.i(TAG, "setAlarm: eventDate"+dateString);
    //發送廣播
    Intent intent = new Intent(ALARM_ACTION);
    intent.putExtra("intervalMillis", intervalMillis);
    intent.putExtra("eventName", eventName);
    intent.putExtra("eventDetail", eventDetail);
    intent.putExtra("id", id);
    intent.putExtra("eventDate", dateString);
    intent.putExtra("soundOrVibrator", soundOrVibrator);
    PendingIntent sender = PendingIntent.getBroadcast(context, id, intent, PendingIntent
            .FLAG_CANCEL_CURRENT);

    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
        am.setWindow(AlarmManager.RTC_WAKEUP, calMethod(week, calendar.getTimeInMillis()),
                intervalMillis, sender);
    } else {
        if (flag == 0) {
            am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
        } else {
            am.setRepeating(AlarmManager.RTC_WAKEUP, calMethod(week, calendar.getTimeInMillis
                    ()), intervalMillis, sender);
        }
    }
}
 
開發者ID:wendyltan,項目名稱:EasyTodo,代碼行數:52,代碼來源:AlarmManagerUtil.java


注:本文中的android.app.AlarmManager.setWindow方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。