Здравствуйте ещё раз ) Использовал AlarmManager и всё вроде хорошо, но недавно обнаружил что на 4 андроиде уведомления вообще не приходят, хотя на 2.3.3 приходят стабильно. В чём может быть проблема?klblk писал(а): Зависит от того какую задачу решает сервис:
1) Если задача продолжительная (проигрывание музыки, загрузка файлов, сложные вычисления), то нужно запускать сервис в режиме Foreground (есть урок) и использовать WakeLock (с ним нужно быть осторожным)
2) Если нужно в определенное время просто отправить уведомление, то вероятнее правильнее использовать AlarmManager (есть урок)
Урок 99. Service. Уведомления - notifications
Re: Урок 99. Service. Уведомления - notifications
Re: Урок 99. Service. Уведомления - notifications
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
alarmManager.setExact( бла бла );
} else {
alarmManager.set( бла бла );
}
alarmManager.setExact( бла бла );
} else {
alarmManager.set( бла бла );
}
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Урок 99. Service. Уведомления - notifications
Добрый день!
Правильно ли я понимаю, что раз сервис запущен в отдельном процессе, то:
1. TimeUnit.SECONDS.sleep() не будет тормозить основной поток.
2. Если выйти и закрыть приложение, сеовис останется работать.
Правильно ли я понимаю, что раз сервис запущен в отдельном процессе, то:
1. TimeUnit.SECONDS.sleep() не будет тормозить основной поток.
2. Если выйти и закрыть приложение, сеовис останется работать.
Re: Урок 99. Service. Уведомления - notifications
Здравствуйте. Подскажите как подгрузить картинку в notification из интернета?
Re: Урок 99. Service. Уведомления - notifications
Всем привет!
Такой вопрос как передать данные Service из активности, то есть у меня есть активность, получает данные от сервера(строки), так вот нужно передать их сервису и вывести в уведомление.
Пробовал через интент:
Но в самом сервисе при вызове метода getIntent eclipse ругается что - The method getIntent() is undefined for the type MyService
Как быть?
Такой вопрос как передать данные Service из активности, то есть у меня есть активность, получает данные от сервера(строки), так вот нужно передать их сервису и вывести в уведомление.
Пробовал через интент:
Код: Выделить всё
Intent i = new Intent(MainActivity.this, MyService.class);
i.putExtra("title", messages.get(0));
i.putExtra("content", contents.get(0));
startService(i);
Код: Выделить всё
Intent i = getIntent();
Как быть?
Re: Урок 99. Service. Уведомления - notifications
онстарт команд срабатывает при запуске сервиса и каждый раз ,когда приходит интент. onStartCommand(Intent, int, int)
В аргументах приходит интент, проверяешь его на null и потом уже работаешь по задумке.
В аргументах приходит интент, проверяешь его на null и потом уже работаешь по задумке.
Семь раз отмерь - поставь студию.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Эклипс не студия, ошибка вылетит - не исправишь.
Скажи мне кто твой друг, и оба поставили студию.
Студия - свет, а эклипс - тьма.
Re: Урок 99. Service. Уведомления - notifications
кто подскажет,как можно реализовать закрытие приложение(убить полностью)при удаление уведомление?
Re: Урок 99. Service. Уведомления - notifications
Всем привет!
Почитал об Notification.Builder и взял пример кода:
Ругается на метод build, пишет, что необходим API level 16 (Added in API level 11 !?), а у меня минимальная версия 15. Что не так у меня? Подскажите.
Да, вот такой код не работаетA.N.R.I писал(а):Кстати, обратите внимание, что конструктор Notification (int icon, CharSequence tickerText, long when) обьявлен как deprecated, взамен предлагают Notification.Builder (для API 11 и выше)
Код: Выделить всё
void sendNotif() {
// 1-я часть
Notification notif = new Notification(R.drawable.ic_launcher, "Text in status bar",
System.currentTimeMillis());
// 3-я часть
Intent intent = new Intent(this, MainActivity.class);
intent.putExtra("param_name", 3);
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
// 2-я часть
notif.setLatestEventInfo(this, "Notification's title", "Notification's text", pIntent);
// ставим флаг, чтобы уведомление пропало после нажатия
notif.flags |= Notification.FLAG_AUTO_CANCEL;
// отправляем
nm.notify(1, notif);
}
Код: Выделить всё
Notification notif = new Notification.Builder(this)
.setContentTitle("ContentTitle")
.setContentText("ContentText")
.setSmallIcon(R.drawable.ic_launcher)
.build();
Каждая незаконченная задача - это минус. Но каждый зачеркнутый минус - это плюс.
Re: Урок 99. Service. Уведомления - notifications
Используйте метод getNotification() вместо build(). По сути гугл просто переименовал названия метода в 16+.mitra писал(а):Ругается на метод build, пишет, что необходим API level 16 (Added in API level 11 !?), а у меня минимальная версия 15. Что не так у меня? Подскажите.
Ну а если deprecated смущает, то делайте проверку версии Android и в зависимости от версии используйте метод build() или getNotification().
Re: Урок 99. Service. Уведомления - notifications
getNotification() is deprecatedklblk писал(а): Используйте метод getNotification() вместо build(). По сути гугл просто переименовал названия метода в 16+.
Ну а если deprecated смущает, то делайте проверку версии Android и в зависимости от версии используйте метод build() или getNotification().
В манифесте у меня так:
Код: Выделить всё
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="19" />
Непонятная ситуация. Кто может подсказать, где искать выход?
Каждая незаконченная задача - это минус. Но каждый зачеркнутый минус - это плюс.
Re: Урок 99. Service. Уведомления - notifications
Сделал так, заработалоklblk писал(а):... Ну а если deprecated смущает, то делайте проверку версии Android и в зависимости от версии используйте метод build() или getNotification().
Код: Выделить всё
if(Build.VERSION.SDK_INT == 15) {
notif = builder.getNotification();
// ставим флаг, чтобы уведомление пропало после нажатия
notif.flags |= Notification.FLAG_AUTO_CANCEL;
// отправляем
nm.notify(1, notif);
}
if(Build.VERSION.SDK_INT > 15) {
notif = builder.build();
// ставим флаг, чтобы уведомление пропало после нажатия
notif.flags |= Notification.FLAG_AUTO_CANCEL;
// отправляем
nm.notify(1, notif);
}
Каждая незаконченная задача - это минус. Но каждый зачеркнутый минус - это плюс.
Re: Урок 99. Service. Уведомления - notifications
Корректнее было бы так:mitra писал(а):Сделал так, заработалоКод: Выделить всё
if(Build.VERSION.SDK_INT == 15) { notif = builder.getNotification(); // ставим флаг, чтобы уведомление пропало после нажатия notif.flags |= Notification.FLAG_AUTO_CANCEL; // отправляем nm.notify(1, notif); } if(Build.VERSION.SDK_INT > 15) { notif = builder.build(); // ставим флаг, чтобы уведомление пропало после нажатия notif.flags |= Notification.FLAG_AUTO_CANCEL; // отправляем nm.notify(1, notif); }
[syntax=java] if(Build.VERSION.SDK_INT > 15) {
...
} else {
...
}[/syntax]
Даже если вы не поддерживаете версии <15 (сегодня не поддерживаете, а завтра передумаете=)
Re: Урок 99. Service. Уведомления - notifications
у меня не получилось создать уведомление со звуком. Вообще на эмуляторе будет слышен звук?
Re: Урок 99. Service. Уведомления - notifications
Очень интересный урок, большое спасибо.
BUT HELP
Всё работает прекрасно. Notification появляется через указанное время с указанным текстом. При нажатии открывается активити, но данные из intent пустые. Всё сделал как в уроке. Не могу понять, в чём проблема.
И вопрос. Можно ли из уведомления вызвать/передать данные обратно в сервис?
BUT HELP
Всё работает прекрасно. Notification появляется через указанное время с указанным текстом. При нажатии открывается активити, но данные из intent пустые. Всё сделал как в уроке. Не могу понять, в чём проблема.
И вопрос. Можно ли из уведомления вызвать/передать данные обратно в сервис?
-
- Сообщения: 13
- Зарегистрирован: 24 янв 2014, 02:45
Re: Урок 99. Service. Уведомления - notifications
Подскажите как реализовать, чтоб уведомление всплывало в указанную дату и время? Например, 1 января в 00:00 всплывет "С Новым годом"
Re: Урок 99. Service. Уведомления - notifications
Подскажите что ему не нравится?
У меня стоит минималка 16 API, эмулятор тоже 16. Пишу в Андроид студио.
Если добавляю в манифест строку
что бы сервис работал в отдельном процессе и получаю ошибку
то ошибка пропадает, но сервис не запускается отдельным процессом.
Что не так?
У меня стоит минималка 16 API, эмулятор тоже 16. Пишу в Андроид студио.
Если добавляю в манифест строку
Код: Выделить всё
android:process="proc2"
А если пишу так(добавил точку перед словом):Installation failed with message INSTALL_PARSE_FAILED_MANIFEST_MALFORMED.
It is possible that this issue is resolved by uninstalling an existing version of the apk if it is present, and then re-installing.
WARNING: Uninstalling will remove the application data!
Do you want to uninstall the existing application?
Код: Выделить всё
android:process=".proc2"
Что не так?
- Mikhail_dev
- Сообщения: 2386
- Зарегистрирован: 09 янв 2012, 14:45
- Откуда: Самара
Re: Урок 99. Service. Уведомления - notifications
Вот как у нас. Фильтры вам наверное не нужны
[syntax=xml]
<service
android:name=".tracker.TrackerService"
android:process=":tracker">
<intent-filter>
...
</intent-filter>
</service>
[/syntax]
[syntax=xml]
<service
android:name=".tracker.TrackerService"
android:process=":tracker">
<intent-filter>
...
</intent-filter>
</service>
[/syntax]
Re: Урок 99. Service. Уведомления - notifications
Вот мой блок сервиса MyService, сделал аналогию вашему коду, не понимает он .proc2.MyService
Что я не так понял?
Код: Выделить всё
<service
android:name=".proc2.MyService"
android:enabled="true"
android:exported="true"
android:process=":proc2">
</service>
Re: Урок 99. Service. Уведомления - notifications
Заработало отдельным потоком в вот таком виде, только кнопка стоп сервис, почему то не срабатывает
<service
android:name="MyService"
android:enabled="true"
android:exported="true"
android:process=":proc2">
</service>
<service
android:name="MyService"
android:enabled="true"
android:exported="true"
android:process=":proc2">
</service>
-
- Сообщения: 13
- Зарегистрирован: 24 янв 2014, 02:45
Re: Урок 99. Service. Уведомления - notifications
Подскажите как реализовать, чтоб уведомление всплывало в указанную дату и время? Например, 1 января в 00:00 всплывет "С Новым годом"