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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
#1

Android.permission.GET_TASKS - Программирование Android

15.12.2015, 20:51. Просмотров 415. Ответов 13
Метки нет (Все метки)

В приложениии есть сервис. Нужно чтоб
а) показывал уведомление когда приложение не активно
б) не показывал уведомление когда приложение активно (активити на экране)
Java
1
2
3
4
5
6
List<RunningTaskInfo> tasks = am.getRunningTasks(1);
if (!tasks.isEmpty()) {
    ComponentName topActivity = tasks.get(0).topActivity;
    if (topActivity.getPackageName().contains("hh.rube"))
        return;
}
А т.к. с api 21 deprecated то как переделать? Тем более минус один пермишн будет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.12.2015, 20:51
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Android.permission.GET_TASKS (Программирование Android):

Android 6.0 permission - Программирование Android
Подскажите, пожалуйста, как лучше в андроид 6.0 добавить все необходимые разрешения, чтобы код был оптимальным? Есть вот такой...

Публикация на google play с android.permission-group.SYSTEM_TOOLS - Программирование Android
День добрый. Пишется проект для работы которого используются пермишены android.permission-group.SYSTEM_TOOLS. Тут подсказали, что могут...

Java.lang.SecurityException: Neither user 10005 nor current process has android.permission.PACKAGE_USAGE_STATS - Программирование Android
Здравствуйте! Как повиксить? java.lang.SecurityException: Neither user 10005 nor current process has...

Permission denied (missing INTERNET permission?) - Программирование Android
В общем только учусь программированию на андройд. Вышла вот такая ошибка. Хотя в манифесте стоит запрос доступа к интернету &lt;?xml...

WRITE_SETTINGS permission - Программирование Android
Господа знатоки, в приложении на действии добавления данных в БД выходит ошибка E/AndroidRuntime: FATAL EXCEPTION: main ...

Permission Denial: receiving Intent - Программирование Android
Добрый вечер. Цель - после перезагрузки запускать Alarm, но он не запускается. System Process выдаёт вот это Manifest ...

13
YuraAAA
1576 / 1317 / 271
Регистрация: 25.10.2009
Сообщений: 3,438
Записей в блоге: 2
15.12.2015, 23:51 #2
Rube, http://stackoverflow.com/a/27140347 тут посмотрите, может поможет
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
16.12.2015, 13:09  [ТС] #3
Читал там, не то что нужно. Перефразирую, как узнать из сервиса запущена ли в данный момент активити?
Сервис и активити - одного приложения.
Без Android.permission.GET_TASKS и onStart и onResume.
0
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
16.12.2015, 13:16 #4
а почему не сообщать в onPause и onResume сервису что активити запустилось или остановилось?
или я не понял задачу
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
16.12.2015, 13:42  [ТС] #5
Сервис может быть запущен из alarmmanagerа, активити в это время нету.
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
16.12.2015, 13:47 #6
Цитата Сообщение от Rube Посмотреть сообщение
Сервис может быть запущен из alarmmanagerа, активити в это время нету.
Ну по умолчанию значит значение в false, активити запускается ставит в true, в onPause обратно в false. Но если вдруг сервис может быть запущен после запуска активити пока она активна - он будет считать что активити не активна.

Добавлено через 2 минуты
можно вообще флаг этот в sharedPreferencess хранить. Создать активити от которой все остальные унаследовать и менять там в onResume, onPause значение. А в сервисе чекать его из того же sharedPreferencess. В таком случае можно будет по всему приложению знать запущена уже активити или нет.
1
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
16.12.2015, 13:52  [ТС] #7
Я ж написал без onPause и прочее. Так то с переменной нет вопросов. Именно программное определение хочется.
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
16.12.2015, 13:54 #8
Цитата Сообщение от Rube Посмотреть сообщение
Я ж написал без onPause и прочее
Эммм а зачем? Чет не вижу причин почему это плохо.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
16.12.2015, 14:01  [ТС] #9
Spelcrawler, т.к. onPause сработает при переходе на другую активити.
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
16.12.2015, 14:03 #10
Цитата Сообщение от Rube Посмотреть сообщение
onPause сработает при переходе на другую активити.
Ну правильно, а другая активити в onResume опять флаг поменяет)
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
16.12.2015, 14:13  [ТС] #11
Флаг статик, андроид прибьет приложение, флага вообще не будет. Тут надо все учесть, все посчитать, в каждую on каждой активити записать инициализацию. Геморой детектед. Надо по феншую.
0
Spelcrawler
526 / 496 / 111
Регистрация: 12.03.2014
Сообщений: 1,649
Завершенные тесты: 1
16.12.2015, 14:17 #12
Rube, ну я же написал по фен шую). Создаем флаг не в статик поле, а в SharedPreferencess. Далее создаем BaseActivity, в которой переопределяем методы onResume и onPause (в них меняем флаг в SharedPreferencess). Далее наследуем ВСЕ активити приложения от этой BaseActivity. И все - у нас всегда правильный флаг в SharedPreferencess, его никто никогда не прибьет и доступ к нему из любого места приложения.
2
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
16.12.2015, 14:25  [ТС] #13
Spelcrawler, ну если ничего не найду то так и сделаю. Но должно же быть решение, приложение же одно, а значит context общий и для активити и для сервиса.
Читаю пока stackoverflow.com/questions/20594936/
0
Pablito
2476 / 1960 / 611
Регистрация: 12.05.2014
Сообщений: 6,863
Завершенные тесты: 1
16.12.2015, 14:34 #14
все делать в одной активити на фрагментах
тогда можно сервису маячить хоть интентами, хоть через интерфейсы хоть через sharedprefs
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.12.2015, 14:34
Привет! Вот еще темы с ответами:

Не создается папка - Permission denied - Программирование Android
Хотел создать папку или файл в /data/, но папка там не создаётся, а при попытке записи файла в /data/ выскакивает ошибка...

Откуда берутся атрибуты android:layout_width и android:layout_height в элементе LinearLayout? - Программирование Android
Недавно начал изучать Android API, а сегодня более менее разобрал основы синтакиса XML. Затем стал разбирать следующий пример: ...

Android studio, как запускать программу сразу на android смартфоне подключенному к usb? - Программирование Android
android studio, как запускать программу сразу на android смартфоне подключенному к usb?

Ошибка: Caused by Android java.lang.ClassCastException: android.app.Application cannot be cast - Программирование Android
Здравствуйте. Очень нужен ваш совет. При запуске приложения появляется ошибка: Caused by: java.lang.ClassCastException:...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
14
Yandex
Объявления
16.12.2015, 14:34
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru