Форум программистов, компьютерный форум CyberForum.ru

Снова Alarm Manager: как запустить на API выше 19-го? - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Динамическое изменение положения объектов http://www.cyberforum.ru/android-dev/thread1746048.html
Есть текстовое поле под ним изображение, как сделать чтобы при изменении количества строк изображение смещалась?
Android Продажа мобильного приложения Все привет. Хочу продать свое приложение из плей маркета, есть покупатель. Может кто скинуть шаблон договора для подобной сделки? Какие моменты нужно отдельно осветить? http://www.cyberforum.ru/android-dev/thread1745946.html
Android Библиотека android для конвертации pdf в картинку
Работал кто или сталкивался с такой потребностью? может подсказать ссылку на библиотеку?
Android Игральные кости 3D
Везде искал но не смог найти то как сделать трехмерные игральные кости для своей игры под андроид, такие чтобы: 1) бросать от "пальца" 2) не повторяющаяся анимация. Кто-нибудь делал такое? Если да то как?
Android Не воспроизводит звук http://www.cyberforum.ru/android-dev/thread1745772.html
Помогите пожалуйста настроить воспроизведение звука через 2 кнопки. Музыка включается при нажатие на кнопку включения звука "Button1" , а при нажатии на кнопку отключения звука "Button2" ничего не происходит. Вот этот кусочек кода: final MediaPlayer MP = MediaPlayer.create(Zastavka.this, R.raw.bob); Button myBtn1 = (Button) findViewById(R.id.button1); myBtn1.setOnClickListener(new...
Android Преобразование 2 форматов дат к одному Есть 2 строки: String s1 = "26 мая 2016"; String s2 = "26 may 2016"; Можно ли их как то преобразовать к формату "2016.05.26"? Есть ли стандартные решения, или какие то библиотеки? подробнее

Показать сообщение отдельно
Kadagor
12 / 12 / 4
Регистрация: 17.09.2015
Сообщений: 46
08.06.2016, 17:53     Снова Alarm Manager: как запустить на API выше 19-го?
Цитата Сообщение от disx Посмотреть сообщение
long timeFromTimePickeer = convertToMillisecond(hour, minute); int currentHours = calendar.get(Calendar.HOUR_OF_DAY); int currentMinutes = calendar.get(Calendar.MINUTE); long curentTimeInMilliseconds=convertToMillisecond(currentHours, currentMinutes); long difference=timeFromTimePickeer-curentTimeInMilliseconds;
Цитата Сообщение от fraley Посмотреть сообщение
private long convertToMillisecond(int hour, int minute){ return ((hour*60+minute)*60)*1000; }
Если мы в TimePickerDialog выставим, например, 6:30. А сейчас 12:00. difference содержит отрицательное значение и будильник, по идее, сразу сработает.

Добавлено через 13 минут
У себя я использовал следующий код:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public boolean setAlarm(Context context, long ID, int hour, int minute){
        if(hour<0 || hour>23 || minute<0 || minute>59) return false;
 
        AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
 
        Calendar myAlarmDate = Calendar.getInstance();
        myAlarmDate.setTimeInMillis(System.currentTimeMillis());
        long timeTrigger = 0;
 
        if(myAlarmDate.get(Calendar.HOUR_OF_DAY)<hour || (myAlarmDate.get(Calendar.HOUR_OF_DAY)==hour && myAlarmDate.get(Calendar.MINUTE)<minute)){
            Log.d(TAG1, "Alarm start today at "+hour+":"+minute);
            myAlarmDate.set(Calendar.HOUR_OF_DAY, hour);
            myAlarmDate.set(Calendar.MINUTE, minute);
            myAlarmDate.set(Calendar.SECOND, 0);
            timeTrigger = myAlarmDate.getTimeInMillis();
        }else{
            Log.d(TAG1, "Alarm start next day at "+hour+":"+minute);
            myAlarmDate.set(Calendar.HOUR_OF_DAY, 23);
            myAlarmDate.set(Calendar.MINUTE, 59);
            myAlarmDate.set(Calendar.SECOND, 59);
            timeTrigger = myAlarmDate.getTimeInMillis() + convertToMillisecond(hour,minute,0);
        }
        am.set(AlarmManager.RTC_WAKEUP, timeTrigger, PendingIntent.getBroadcast(context, 0, createIntent(context, ID), 0));
        return true;
    }
Замени в моей функции convertToMillisecond(hour,minute,0) на convertToMillisecond(hour,minute)
и am.set(AlarmManager.RTC_WAKEUP, timeTrigger, PendingIntent.getBroadcast(context, 0, createIntent(context, ID), 0)) на am.setInexactRepeating(AlarmManager.RTC_WAKEUP, timeTrigger, AlarmManager.INTERVAL_DAY ,pendingIntent)
, добавь
Цитата Сообщение от disx Посмотреть сообщение
Intent intent = new Intent(context, Vibrate.class);
pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT);
И по идее должно работать
 
Текущее время: 19:02. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru