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

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

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

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

28.01.2015, 15:31. Просмотров 308. Ответов 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();
    }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.01.2015, 15:31     Пробуждение приложения
Посмотрите здесь:

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

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

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

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

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

8.1: долгое пробуждение ото сна или гибернации + DPC_WATCHDOG_VIOLATION BSOD - Windows 8, 8.1
Добрый день! Как же часто я бывал на этом форуме по программистским вопросам и часто он выручал - не пришлось регистрироваться ни...

Не работает пробуждение в "назначенных заданиях" - Windows XP
Приветствую ! Есть администратор 1 и администратор Админ ( с паролем) Назначил задание от администратора Админ на запуск проигрывателя...

Web приложения или Стацанарное приложения
Надо на работу написать программу, электронную базу то есть когда человек пришел на работу и когда ушел, Смысл такой что дежурный на...

Не открывает приложения погода и приложения камера - Windows 8, 8.1
Не открывает приложения погода и еще приложения камера(которая стандартная) другие аналогичные программы открывает,а стандартную нет.Что...

Ошибка при инициализации приложения (0xc0000135).Для выхода из приложения нажм кн "Ок". - Windows
Люди вот такая ошибка, кто знает как ее исправить (появилась после переустановки винды) Ошибка при инициализации приложения...

Запуск приложения из другого приложения - C++ Linux
Всем привет, подскажите как решить следующую задачу. Есть приложение "A" которое запускает два приложения "B" и "C" по очереди с помощью...

Запуск приложения из приложения - C++
Задача. Приложение (Win32) запускает другое приложение с параметром (ключом). Решение. Использую CreateProcess(..., 'Exe2.exe',...


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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