Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
_Vertigo_
14 / 14 / 6
Регистрация: 07.09.2013
Сообщений: 159
Завершенные тесты: 1
#1

Пробуждение приложения

28.01.2015, 15:31. Просмотров 431. Ответов 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
Ответы с готовыми решениями:

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

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

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

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

Пробуждение по watchdog
Доброго времени суток. На старом АТ90S нужно уйти в сон, проснуться по watchdog, убедиться что...

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

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

Пробуждение ПК из режима сна
Всем привет) Подскажите пожалуйста как программно вывести ПК/Ноут из режима сна? Добавлено...

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


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

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

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