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

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

Войти
Регистрация
Восстановить пароль
 
_Vertigo_
14 / 14 / 2
Регистрация: 07.09.2013
Сообщений: 159
Завершенные тесты: 1
#1

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

28.01.2015, 15:31. Просмотров 351. Ответов 0
Метки нет (Все метки)

Здравствуйте. Столкнулся с проблемой пробуждения приложения. Приложение - будильник. В определенный момент времени необходимо запустить активность(АО), на которой воспроизводится мелодия пробуждения и отображается AlertDialog, который останавливает мелодию. Проблема заключается в следующем: в мною написанном варианте, по непонятной мне причине, изначально запускается мелодия, а затем уже запускается сама активность. Так же, в случае, если пользователь в момент запуска будильника, к примеру, сидел в другом приложении, то прежде чем АО запустится, проходит несколько секунд. Как это можно исправить?
Handler'у отправляется сообщение из фонового потока:
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
Handler handler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                Log.d(tag, "handleMessage");
 
                Bundle bundle = msg.getData();
                String date = bundle.getString("key");
 
                Intent i = new Intent(Intent.ACTION_MAIN);
                i.setComponent(new ComponentName(context, RemindActivity.class));
                i.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP |
                        Intent.FLAG_ACTIVITY_NEW_TASK |
                        Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS);
                startActivity(i);
 
                PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
                mWakeLock = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK |
                        PowerManager.ACQUIRE_CAUSES_WAKEUP | PowerManager.ON_AFTER_RELEASE, tag);
                mWakeLock.acquire();
                RemindActivity.this.getWindow().addFlags(WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED);
 
                stop();
 
                mWakeLock.release();
            }
        };
Метод stop запускает сервис, который запускает мелодию. Этот же метод и останавливает сервис:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public void stop(){
        startService(new Intent(this, AlarmService.class));
 
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(this);
        String goodEnd = getResources().getString(R.string.goodEnd);
 
        alertDialog.setMessage(goodEnd);
 
        alertDialog.setPositiveButton(getResources().getString(R.string.ok), new DialogInterface.OnClickListener() {
            public void onClick(DialogInterface dialog, int which) {
                stopService(new Intent(RemindActivity.this, AlarmService.class));
                dialog.dismiss();
            }
        });
 
        alertDialog.show();
    }
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2015, 15:31
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Пробуждение приложения (Программирование Android):

Ошибка при вызове приложения из другого приложения - Программирование Android
Сделано два простеньких приложения и я хочу чтобы одно приложение запускало другое. В приложении, которое будет запущено установлен фильтр...

Из приложения А проверить наличие установленного на устройстве приложения В - Программирование Android
Извиняюсь за нубский вопрос. Подскажите в андроид есть возможность из приложения А проверить наличие установленного на устройстве...

Запуск приложения из другого приложения - Программирование Android
Привет товарищи! Имеется два приложения. Задача следующая: Из первого приложения запустить второе, да так, что бы второе приложение...

Запуск приложения из другого приложения - Программирование Android
Собственно вопрос уже назван в теме: есть приложение, как по нажатии кнопки запустить другое, которое уже есть в системе Android? Как это...

Самопроизвольное пробуждение - Windows 8, 8.1
Добрый вечер! Возникла такая проблема: ноутбук с Win8 начал произвольно выходить из спящего режима. В Центре поддержки автоматическое...

Пробуждение ПК из режима сна - C#
Всем привет) Подскажите пожалуйста как программно вывести ПК/Ноут из режима сна? Добавлено через 20 часов 38 минут Включить...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.01.2015, 15:31
Привет! Вот еще темы с ответами:

Планировщик заданий - пробуждение компьютера - CMD/BAT
Здравствуйте, есть нужда создать на нескольких компьютерах задачу для пробуждения компьютера каждую субботу в 18:00, подскажите есть ли...

Пробуждение микроконтроллера по прерыванию с АЦП - AVR
Всем привет, Разрабатываю систему, которая должна постоянно следить за уровнем шума вокруг, и, раз в сутки, передавать на сервер...

Не работает пробуждение по расписанию в Windows 7 с grub2 - Linux
Добрый день. Есть необходимость сделать автоматическое пробуждение ноутбука из режима гибернации т.к. настройки пробуждения по времени в...

Как отключить пробуждение компьютера по таймерам? - Windows 10
Я замучался с этими произвольными включениями. на windows 8 было ок всё, а 10ка постоянно просыпается из спящего режима. - таймеры...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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