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

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

Войти
Регистрация
Восстановить пароль
 
dimon4
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
#1

Управление медиаплеером в службе - Программирование Android

26.04.2016, 12:50. Просмотров 183. Ответов 13
Метки нет (Все метки)

всем привет! прошу новичка сильно не ругать

1.есть приложение с 5 активити: акт1,акт2,акт3,акт4,акт5
акт1 - launcher с 4кнопками, открывающими окна2-5 (между собой не взаимодействуют, т.е. обратно кнопка back).

2.есть служба (стартует в onCreate акт1) запускающая медиаплеер (гоняет по кругу одну мелодию).

вопрос: существует ли возможность научить саму службу останавливать медиаплеер при потере фокуса приложением?

я решил вопрос через использование вспомогательных переменных в каждом окне в методах onPaused, onResumed, onBackPressed. но считаю, что это некрасиво...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.04.2016, 12:50     Управление медиаплеером в службе
Посмотрите здесь:

Уроки с медиаплеером - Программирование Android
За основу использую проект с сайта стартандроид - уроки с медиаплеером. ...

Выполнение get запроса к веб службе - Программирование Android
Всем привет изучаю андройд по книге, и в данный момент пишу приложение клиент для Flickr, однако столкнулся с такой проблемой при...

Управление машинкой по Wi-Fi - Программирование Android
Добрый день уважаемые форумчане. Делаю дипломную работу и мне нужно написать программу для машинки, что бы она управлялась по Wi-Fi. (Вот...

Управление приложением - Программирование Android
Доброго дня коллеги. Вопрос у меня назрел весьма интересный. Может кто задумывался об этом, а может кто-то знает уже где искать подобное...

Управление элементами меню - Программирование Android
Пытаюсь разобраться с явой и поэтому немного сложно сориентироваться: Подскажите пожалуйста - управлять визуальными элементами приложения...

Управление вибро мотором - Программирование Android
Товарищи, добрый день! Решился впервые взяться за мобильные платформы. Вот для себя придумал ознакомительную программку. Идея вот в чем,...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Pablito
2458 / 1903 / 591
Регистрация: 12.05.2014
Сообщений: 6,711
Завершенные тесты: 1
26.04.2016, 13:03     Управление медиаплеером в службе #2
одна активити + фрагменты и никаких проблем не возникало бы
dimon4
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
26.04.2016, 13:10  [ТС]     Управление медиаплеером в службе #3
Цитата Сообщение от Паблито Посмотреть сообщение
одна активити + фрагменты и никаких проблем не возникало бы
с этим согласен

но я добрался до программирования только 2,5недели назад и осилить все СРАЗУ просто не могу... про фрагменты уже прочитал, но сейчас уже все сделано так как сделано. для тренировки писал пятнашки (2 недели )) ).

если этого сделать нельзя, переживу
Pablito
2458 / 1903 / 591
Регистрация: 12.05.2014
Сообщений: 6,711
Завершенные тесты: 1
26.04.2016, 13:21     Управление медиаплеером в службе #4
еще как вариант можно сделать свой класс, наследник Application, в котором ловить калбэки от своих активити, что-то типа
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
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
public class MyApplication extends Application {
 
    private int activeCount;
 
    @Override
    public void onCreate() {
        super.onCreate();
        registerActivityLifecycleCallbacks(new ActivityLifecycleCallbacks() {
            @Override
            public void onActivityCreated(Activity activity, Bundle savedInstanceState) {
            }
 
            @Override
            public void onActivityStarted(Activity activity) {
                activeCount++;
            }
 
            @Override
            public void onActivityResumed(Activity activity) {
            }
 
            @Override
            public void onActivityPaused(Activity activity) {
            }
 
            @Override
            public void onActivityStopped(Activity activity) {
                activeCount--;
                if (activeCount == 0) // говорим сервису прекратить играть
            }
 
            @Override
            public void onActivitySaveInstanceState(Activity activity, Bundle outState) {
            }
 
            @Override
            public void onActivityDestroyed(Activity activity) {
            }
        });
    }
}
и не забыть прописать класс в манифесте
XML
1
2
    <application
        android:name=".MyApplication"
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
26.04.2016, 13:27     Управление медиаплеером в службе #5
Цитата Сообщение от dimon4 Посмотреть сообщение
существует ли возможность научить саму службу останавливать медиаплеер при потере фокуса приложением?
Цитата Сообщение от dimon4 Посмотреть сообщение
я решил вопрос через использование вспомогательных переменных в каждом окне в методах onPaused, onResumed, onBackPressed.
Не совсем понятно, зачем так делать (это я про вопрос).
Ваше решение нормальное.
dimon4
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
26.04.2016, 13:36  [ТС]     Управление медиаплеером в службе #6
Цитата Сообщение от CoolMind Посмотреть сообщение
Не совсем понятно, зачем так делать (это я про вопрос).
Ваше решение нормальное.
думал что можно как-то проще все сделать... пойду переваривать пост от Паблито... с виду оно правильнее и понятнее, но опять башку колбэками забивать

всем спасибо
CoolMind
418 / 401 / 65
Регистрация: 06.10.2012
Сообщений: 1,727
26.04.2016, 13:48     Управление медиаплеером в службе #7
Цитата Сообщение от dimon4 Посмотреть сообщение
с виду оно правильнее и понятнее
Правильнее следовать модели жизненного цикла активностей, а не делать singleton.
dimon4
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
26.04.2016, 14:00  [ТС]     Управление медиаплеером в службе #8
так-с... маленько переварил... Паблито, подскажи пожалуйста в каком месте мои активити будут сообщать MyApplication о состоянии? в тех же методах onPaused, onResumed, onBackPressed? и так же буду заводить всп.переменные?

значит на будущее в таких случаях использую фрагменты... опять же картинку 2 раза не придется перекодировать кругом польза.
Pablito
2458 / 1903 / 591
Регистрация: 12.05.2014
Сообщений: 6,711
Завершенные тесты: 1
26.04.2016, 14:08     Управление медиаплеером в службе #9
нет, переменные никакие не нужны
когда какая-то активити дойдет и выполнит метод onStart или onStop - в классе Application вызовется соответствующий метод и все

и это не singleton, люди всегда боятся того, чего они не понимают - не нужно думать что ловить калбэки от активностей в классе Application - это что-то страшное и неправильное

но все равно делать на фрагментах удобнее и как-то правильнее (мне кажется)
dimon4
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
26.04.2016, 14:16  [ТС]     Управление медиаплеером в службе #10
что раньше сработает онСТоп первого или онСтарт второго? если онстоп, то уже акткаунт 0 и сервис уснет...
Pablito
2458 / 1903 / 591
Регистрация: 12.05.2014
Сообщений: 6,711
Завершенные тесты: 1
26.04.2016, 14:18     Управление медиаплеером в службе #11
логично
можно делать костыль в виде postDelayed, но лучше все равно разобраться с фрагментами
dimon4
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
26.04.2016, 14:33  [ТС]     Управление медиаплеером в службе #12
первый пост я уже отметил как лучший ответ с фрагментами потренируюсь на следующем приложении - паззл тем более что пятнашки уже паззлом вышли (без онтачлистенера и произвольной формы кусков картинки)...

кстати, кусок паззла как лучше описать? объект с битмапом с координатами и углом "лежки" и пользовать как картинку? или каждый кусочек сунуть в отдельный фрагмент?
Pablito
2458 / 1903 / 591
Регистрация: 12.05.2014
Сообщений: 6,711
Завершенные тесты: 1
26.04.2016, 14:39     Управление медиаплеером в службе #13
Цитата Сообщение от dimon4 Посмотреть сообщение
первый пост я уже отметил как лучший ответ
а я пометку снял, потому что это не тянет на лучший
не обязательно что бы в каждой теме был лучший ответ )

Цитата Сообщение от dimon4 Посмотреть сообщение
кстати, кусок паззла как лучше описать? объект с битмапом с координатами и углом "лежки" и пользовать как картинку? или каждый кусочек сунуть в отдельный фрагмент?
может кто-то что-то посоветует дельное, мне кажется можно сделать кучей способов, но точно не стоит делать каждый кусочек паззла фрагментом
поле для паззлов - вот фрагмент, да
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.04.2016, 15:02     Управление медиаплеером в службе
Еще ссылки по теме:

Управление фрагментом из активити - Программирование Android
Добрый день! Имею несколько фрагментов, в которых выполняются некоторые действия, то итогу которых формируется результат. Фрагменты...

Управление через ИК порт - Программирование Android
Уважаемые, интересуюсь таким вопросом. На современных девайсах имеется инфракрасный порт, вопрос такой, можно ли как-то подавать сигналы...

Управление телефоном голосом - Программирование Android
Думаю сделать управление как голосовой набор, записываеться метка, и с ней потом сравнивается команда, вот только не знаю как так сделать....

Управление пк через андроид - Программирование Android
Привет. Хотелось бы спросить реально ли написать программу для управления компьютером через интернет/wifi через телефон с ос андроид?...


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

Или воспользуйтесь поиском по форуму:
dimon4
4 / 4 / 0
Регистрация: 12.04.2016
Сообщений: 39
26.04.2016, 15:02  [ТС]     Управление медиаплеером в службе #14
Цитата Сообщение от Паблито Посмотреть сообщение
может кто-то что-то посоветует дельное, мне кажется можно сделать кучей способов, но точно не стоит делать каждый кусочек паззла фрагментом
поле для паззлов - вот фрагмент, да
да вроде бы все видится не сложным.

есть возможность динамически добавить картинку в стиль приложений? ну чтоб не думать о различных экранах.
взял картинку БОЛЬШОГО разрешения в ресурсы. при запуске декодировал ее под экран, откусил лишнее и записал в стиль (напоминаю активити 5шт. в приложении).
Yandex
Объявления
26.04.2016, 15:02     Управление медиаплеером в службе
Ответ Создать тему
Опции темы

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