Страница 7 из 8
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 14 ноя 2014, 18:27
lisensei
klblk писал(а):
Зависит от того какую задачу решает сервис:
1) Если задача продолжительная (проигрывание музыки, загрузка файлов, сложные вычисления), то нужно запускать сервис в режиме Foreground (есть урок) и использовать
WakeLock (с ним нужно быть осторожным)
2) Если нужно в определенное время просто отправить уведомление, то вероятнее правильнее использовать AlarmManager (есть урок)
Здравствуйте ещё раз ) Использовал AlarmManager и всё вроде хорошо, но недавно обнаружил что на 4 андроиде уведомления вообще не приходят, хотя на 2.3.3 приходят стабильно. В чём может быть проблема?
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 15 ноя 2014, 02:37
doter.ua
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
alarmManager.setExact( бла бла );
} else {
alarmManager.set( бла бла );
}
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 09 дек 2014, 09:39
finberg
Добрый день!
Правильно ли я понимаю, что раз сервис запущен в отдельном процессе, то:
1. TimeUnit.SECONDS.sleep() не будет тормозить основной поток.
2. Если выйти и закрыть приложение, сеовис останется работать.
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 16 дек 2014, 14:07
bydirect
Здравствуйте. Подскажите как подгрузить картинку в notification из интернета?
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 04 янв 2015, 01:59
iandryxa
Всем привет!
Такой вопрос как передать данные Service из активности, то есть у меня есть активность, получает данные от сервера(строки), так вот нужно передать их сервису и вывести в уведомление.
Пробовал через интент:
Код: Выделить всё
Intent i = new Intent(MainActivity.this, MyService.class);
i.putExtra("title", messages.get(0));
i.putExtra("content", contents.get(0));
startService(i);
Но в самом сервисе при вызове метода getIntent eclipse ругается что - The method getIntent() is undefined for the type MyService
Как быть?
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 04 янв 2015, 14:09
doter.ua
онстарт команд срабатывает при запуске сервиса и каждый раз ,когда приходит интент. onStartCommand(Intent, int, int)
В аргументах приходит интент, проверяешь его на null и потом уже работаешь по задумке.
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 28 янв 2015, 22:43
gurjubat
кто подскажет,как можно реализовать закрытие приложение(убить полностью)при удаление уведомление?
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 29 янв 2015, 20:42
mitra
Всем привет!
Да, вот такой код не работает
Код: Выделить всё
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.Builder и взял пример кода:
Код: Выделить всё
Notification notif = new Notification.Builder(this)
.setContentTitle("ContentTitle")
.setContentText("ContentText")
.setSmallIcon(R.drawable.ic_launcher)
.build();
Ругается на метод build, пишет, что необходим API level 16 (
Added in API level 11 !?), а у меня минимальная версия 15. Что не так у меня? Подскажите.
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 30 янв 2015, 07:17
klblk
mitra писал(а):Ругается на метод build, пишет, что необходим API level 16 (Added in API level 11 !?), а у меня минимальная версия 15. Что не так у меня? Подскажите.
Используйте метод getNotification() вместо build(). По сути гугл просто переименовал названия метода в 16+.
Ну а если deprecated смущает, то делайте проверку версии Android и в зависимости от версии используйте метод build() или getNotification().
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 30 янв 2015, 11:33
mitra
klblk писал(а):
Используйте метод getNotification() вместо build(). По сути гугл просто переименовал названия метода в 16+.
Ну а если deprecated смущает, то делайте проверку версии Android и в зависимости от версии используйте метод build() или getNotification().
getNotification() is deprecated
В манифесте у меня так:
Код: Выделить всё
<uses-sdk
android:minSdkVersion="15"
android:targetSdkVersion="19" />
То есть получается, что ни
new Notification не подходит, ни метод
build() ни
getNotification().
Непонятная ситуация. Кто может подсказать, где искать выход?
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 03 фев 2015, 10:34
mitra
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
Добавлено: 04 фев 2015, 06:58
klblk
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
Добавлено: 24 фев 2015, 14:35
nikomp
у меня не получилось создать уведомление со звуком. Вообще на эмуляторе будет слышен звук?
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 12 май 2015, 22:26
leon_nash
Очень интересный урок, большое спасибо.
BUT HELP
Всё работает прекрасно. Notification появляется через указанное время с указанным текстом. При нажатии открывается активити, но данные из intent пустые. Всё сделал как в уроке. Не могу понять, в чём проблема.
И вопрос. Можно ли из уведомления вызвать/передать данные обратно в сервис?
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 01 авг 2015, 12:04
Андрей Валентинович
Подскажите как реализовать, чтоб уведомление всплывало в указанную дату и время? Например, 1 января в 00:00 всплывет "С Новым годом"
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 09 сен 2015, 00:02
OrcSin
Подскажите что ему не нравится?
У меня стоит минималка 16 API, эмулятор тоже 16. Пишу в Андроид студио.
Если добавляю в манифест строку
что бы сервис работал в отдельном процессе и получаю ошибку
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?
А если пишу так(добавил точку перед словом):
то ошибка пропадает, но сервис не запускается отдельным процессом.
Что не так?
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 09 сен 2015, 09:19
Mikhail_dev
Вот как у нас. Фильтры вам наверное не нужны
[syntax=xml]
<service
android:name=".tracker.TrackerService"
android:process=":tracker">
<intent-filter>
...
</intent-filter>
</service>
[/syntax]
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 09 сен 2015, 20:47
OrcSin
Вот мой блок сервиса MyService, сделал аналогию вашему коду, не понимает он .proc2.MyService
Код: Выделить всё
<service
android:name=".proc2.MyService"
android:enabled="true"
android:exported="true"
android:process=":proc2">
</service>
Что я не так понял?
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 09 сен 2015, 20:51
OrcSin
Заработало отдельным потоком в вот таком виде, только кнопка стоп сервис, почему то не срабатывает
<service
android:name="MyService"
android:enabled="true"
android:exported="true"
android:process=":proc2">
</service>
Re: Урок 99. Service. Уведомления - notifications
Добавлено: 13 сен 2015, 17:30
Андрей Валентинович
Подскажите как реализовать, чтоб уведомление всплывало в указанную дату и время? Например, 1 января в 00:00 всплывет "С Новым годом"