Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.73/15: Рейтинг темы: голосов - 15, средняя оценка - 4.73
mercooliy
6 / 6 / 1
Регистрация: 12.05.2013
Сообщений: 152
1

AlarmManager не работает после закрытия приложения

26.12.2014, 09:42. Просмотров 2896. Ответов 20
Метки нет (Все метки)

Всем привет, сделал ресивер + нацепил туда alarm вот код в классе ресивера
Java
1
2
3
4
5
6
7
8
9
10
11
12
public void SetAlarm(Context context) {
 
        AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
        Intent intent = new Intent(context, myresiever.class);
        //intent.putExtra(ONE_TIME, Boolean.FALSE); // Задаем параметр интента
        PendingIntent pi = PendingIntent.getBroadcast(context, 0, intent, 0);
        // Устанавливаем интервал срабатывания в 5 секунд.
        //am.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 1000 * 10, pi);
    am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, 5000, 1000 * 10, pi);
 
 
        }
вот так вызываю из моего активити ресивер
Java
1
2
   MyReciver=new myresiever();
      MyReciver.SetAlarm(getApplicationContext());
аларм запускается при работающем приложении и показывает то что я ему тут назначил (опять код ресивера)
Java
1
2
3
4
5
6
7
8
9
public void onReceive(Context context, Intent intent) {
 
        final PowerManager pm = (PowerManager) context.getSystemService(Context.POWER_SERVICE);
        PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "YOUR TAG");
        wl.acquire();       
        Toast.makeText(context, "testAlarm", Toast.LENGTH_SHORT).show();
        wl.release();  
               /////////////////////////
    }
НО! когда я выключаю прогу (закрываю, не сворачиваю) то аларма больше нету((( хотя и в манифесте выставил WAKE_LOCK , и вроде всё правильно написал, но вырубается аларм((( то делаю не так? посоветуйте
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2014, 09:42
Ответы с готовыми решениями:

Автозапуск приложения после его закрытия
Всем привет. Хочу сделать автозапуск приложения после его закрытия или...

Кнопки удаляются после закрытия приложения
Я создаю кнопки но не могу с ними взаимодействовать и их сохранять, можете...

Не перезапускать сервис после закрытия и открытия приложения
Приветствую. Такая проблема, на андройде сервис перезапускается после...

Не удается остановить воспроизведение потока после закрытия и открытия приложения
Написал приложение для воспроизведения аудио-потока. Кнопки Старт и Стоп...

После закрытия приложения пользователем код в таймере продолжает выполняться
Если запустить таймер в android с периодом в пять секунд выполнения действия и...

20
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
26.12.2014, 10:49 2
XML
1
2
<receiver android:name=".myresiever"
</receiver>
?

Не по теме:

reciver
resiever
receiver

0
mercooliy
6 / 6 / 1
Регистрация: 12.05.2013
Сообщений: 152
26.12.2014, 16:35  [ТС] 3
reciver
resiever
receiver
ахха(я так понимаю это слово)

в манифесте это есть (ну я пробовал имя и с точкой в начале и без, а то в разных примерах по разному) , он то запускается, а вто при выключении проги.....
Java
1
2
3
    <receiver android:name="myresiever" >
            
        </receiver>
0
Kastaneda
Jesus loves me
Эксперт С++
4940 / 3016 / 346
Регистрация: 12.12.2009
Сообщений: 7,612
Записей в блоге: 2
Завершенные тесты: 1
26.12.2014, 18:04 4
This is normal behaviour. If the user voluntarily force stop the applicaiton, then it should be stopped. Else, you are creating a virus like application.

If you really want, you could write another service which monitors if your other service is running and runs the service if the one is not running. But this will be another application and (you hope) the user wont kill this app using task manager.

Personally, I wouldn't worry. If the user stopped it, they wanted to stop it. Don't annoy the user.
отсюда
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
26.12.2014, 19:14 5
И?
0
Kastaneda
Jesus loves me
Эксперт С++
4940 / 3016 / 346
Регистрация: 12.12.2009
Сообщений: 7,612
Записей в блоге: 2
Завершенные тесты: 1
26.12.2014, 20:15 6
Цитата Сообщение от Armagedo Посмотреть сообщение
И?
AlarmManager не работает после закрытия приложения, это нормальное поведение.
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
26.12.2014, 20:25 7
Ну-ну-ну...
Закрытие закрытию рознь.
Речь в топике идет о принудительном закрытии приложения через TaskBar
tasks killed via a task killer
что, согласись, с ситуацией корректного, штатного закрытия приложения у mercooliy имеет мало общего
0
Kastaneda
Jesus loves me
Эксперт С++
4940 / 3016 / 346
Регистрация: 12.12.2009
Сообщений: 7,612
Записей в блоге: 2
Завершенные тесты: 1
26.12.2014, 21:43 8
возможно, я в этой платформе пока слабо соображаю, просто нагуглил похожий вопрос на SO.
Вот теперь точно то, что надо )
0
mercooliy
6 / 6 / 1
Регистрация: 12.05.2013
Сообщений: 152
26.12.2014, 22:12  [ТС] 9
просто непонятно почему везде описано что это работает в качетсве будильника, то есть челловек выключил всё (программу) и получил оповещение в нужный момент... то есть и в манифесте всякие WAKE_UP прописываются и т д. а оно не работает - это как не по гугловски)))) у кого нить подоббное работало вооще?
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
27.12.2014, 00:03 10
Kastaneda, зачем вводить в заблуждение чиателей кучей ссылок не по теме вопроса?

mercooliy, ищущий да обрящет

Вот, подрихтованный из тырнета и только что проверенный вариант

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import android.app.Activity;
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.Intent;
import android.os.Bundle;
import android.widget.Toast;
 
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
 
    Intent alarmIntent = new Intent(this, CallDataSend.class);
 
    PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0,
            alarmIntent, 0);
 
    AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
    alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 2000, pendingIntent);
    Toast.makeText(this, "Alarm set", Toast.LENGTH_LONG).show();
   }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.widget.Toast;
 
public final class CallDataSend extends BroadcastReceiver {
 
    @Override
public void onReceive(Context context, Intent intent) {
    Toast.makeText(context, "Alarm is triggerred.", Toast.LENGTH_LONG).show();
}
}
XML
1
2
3
4
 <receiver
        android:name=".CallDataSend"
        android:enabled="true">
</receiver>
Даже после закрытия (корректного) закрытия приложения alarm срабатывает с интервалом 2 секунды пока, падлюку, не прибьёшь через таск киллер

Думаю твоя проблема всего лишь в отсутствии указанной "двойки" в манифесте...
0
mercooliy
6 / 6 / 1
Регистрация: 12.05.2013
Сообщений: 152
27.12.2014, 20:49  [ТС] 11
а под корректным закрытием понимается долгое нажатие на кнопку опций и потом выключение его оттуда))) просто это единствнный способ закрытия приложения, кнопка хом егосворачивает и тогда всё работает), так вот у меня не работает после закрытия приложения... в манифесте прописал , код скопировал))) когда прога работает сообщение показывается...что же делать)))? никак не пойму в чем соль... спасибо)
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
27.12.2014, 20:56 12
Жаль, что нет смайлика "я ни"№я не понял"
0
mercooliy
6 / 6 / 1
Регистрация: 12.05.2013
Сообщений: 152
27.12.2014, 21:05  [ТС] 13
я скрин сделал - это откуда я закрываю приложение ( то есть из менеджера процессов который вызывается при долгом удержании кнопки options)
0
Миниатюры
AlarmManager не работает после закрытия приложения  
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
27.12.2014, 21:31 14
Что за кирпич?
Так закрывать приложения - это все равно, что в Винде закрывать приложения через Диспетчер задач, убивая сам процесс или глушить двигатель авто снятием клемм с аккумулятора.

Врочем, если вы так закрываете, то Kastaneda уже достаточно дал инфорации по такой теме.
0
mercooliy
6 / 6 / 1
Регистрация: 12.05.2013
Сообщений: 152
27.12.2014, 21:41  [ТС] 15
тогда печаль, потому как именно так я всегда к примеру и закрываю а если на кнопку хом выходить, тогда все примеры работают (в том числе и просто с сервисами) тогда не понятно как же делать чтобы работало так как я хочу. по идее как вариант это убрать отображение приложения в таск килере (я это делал в манифесте вот так android:excludeFromRecents="true") но когда приложение открыто - всё равно оно отображается там, мож есть мысли как сделать чтобы его там не показывать?
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
27.12.2014, 21:50 16
Мы, наверное, говорим о каких-то разных вещах...

Я, например, либо закрываю кнопкой back либо, как на видео
https://www.youtube.com/watch?v=M-0IozmEi8o
https://www.youtube.com/watch?v=lg7rX4MrkME

Ни в том, ни в другом случае в приведенном выше примере сам alarm НЕ убивается и он продолжает надоедать своими сообщениями каждые 2 секунды....
0
Gabberr
103 / 103 / 19
Регистрация: 13.10.2009
Сообщений: 404
27.12.2014, 22:12 17
Перенесите логику в сервис и в методе onStartCommand() возвращайте START_STICKY, тогда после завершения вашего приложения сервис воскреснет.
0
Armagedo
209 / 209 / 60
Регистрация: 22.08.2014
Сообщений: 644
27.12.2014, 23:32 18
Ну, человек пытается добиться, что не так у него с alarm как-бы, а его в ответ посылают на сервис...
0
mercooliy
6 / 6 / 1
Регистрация: 12.05.2013
Сообщений: 152
27.12.2014, 23:40  [ТС] 19
START_STICKY не пашет)) но по ходу я понял в чем проблема - есть две версии дроида 4-го (4.2.2 и 4.4 ) так вот в последнем ничего не работает с алармом и сервисами а вот в 4.2.2 всё с..ка работает..... так что видать с ничего видать не сделать...
0
Spelcrawler
531 / 501 / 113
Регистрация: 12.03.2014
Сообщений: 1,666
Завершенные тесты: 1
28.12.2014, 12:24 20
mercooliy, такая же проблема была с GCM - после завершения приложения сообщения не приходят. Везде пишут что все должно работать без дополнительных телодвижений. Порылся еще и пришел к выводу, что во всем виновата MIUI, как вижу на скрине, у вас тоже MIUI. Видимо там приложения полностью убиваются при свайпе из меню "Последние приложения".
0
28.12.2014, 12:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2014, 12:24

Как создать массив который сохраняет свои значение даже после закрытия приложения
Здравствуйте, уважаемые программисты! Не могли бы вы мне помочь? Как создать...

Обновление приложения и AlarmManager
Доброе утро, уважаемые форумчане! Хочу сделать приложение – будильник. С...

Не работает AlarmManager
Суть проблемы в том что когда заеться время уведомления в это время нет.......


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

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

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