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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.75
mercooliy
6 / 6 / 0
Регистрация: 12.05.2013
Сообщений: 133
#1

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

26.12.2014, 09:42. Просмотров 1677. Ответов 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 , и вроде всё правильно написал, но вырубается аларм((( то делаю не так? посоветуйте
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2014, 09:42     AlarmManager не работает после закрытия приложения
Посмотрите здесь:

Android Не освобождаются ресурсы после закрытия Activity
Service автозапуск после закрытия родителя Android
После закрытия приложения пользователем код в таймере продолжает выполняться Android
Android Запуск таймера после закрытия второй Активити
Android Функция закрытия приложения
Автозапуск приложения после его закрытия Android
Android AlarmManager после перезагрузки
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
26.12.2014, 10:49     AlarmManager не работает после закрытия приложения #2
XML
1
2
<receiver android:name=".myresiever"
</receiver>
?

Не по теме:

reciver
resiever
receiver

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

в манифесте это есть (ну я пробовал имя и с точкой в начале и без, а то в разных примерах по разному) , он то запускается, а вто при выключении проги.....
Java
1
2
3
    <receiver android:name="myresiever" >
            
        </receiver>
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4252 / 2784 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
26.12.2014, 18:04     AlarmManager не работает после закрытия приложения #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.
отсюда
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
26.12.2014, 19:14     AlarmManager не работает после закрытия приложения #5
И?
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4252 / 2784 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
26.12.2014, 20:15     AlarmManager не работает после закрытия приложения #6
Цитата Сообщение от Armagedo Посмотреть сообщение
И?
AlarmManager не работает после закрытия приложения, это нормальное поведение.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
26.12.2014, 20:25     AlarmManager не работает после закрытия приложения #7
Ну-ну-ну...
Закрытие закрытию рознь.
Речь в топике идет о принудительном закрытии приложения через TaskBar
tasks killed via a task killer
что, согласись, с ситуацией корректного, штатного закрытия приложения у mercooliy имеет мало общего
Kastaneda
Форумчанин
Эксперт С++
 Аватар для Kastaneda
4252 / 2784 / 219
Регистрация: 12.12.2009
Сообщений: 7,109
Записей в блоге: 1
Завершенные тесты: 1
26.12.2014, 21:43     AlarmManager не работает после закрытия приложения #8
возможно, я в этой платформе пока слабо соображаю, просто нагуглил похожий вопрос на SO.
Вот теперь точно то, что надо )
mercooliy
6 / 6 / 0
Регистрация: 12.05.2013
Сообщений: 133
26.12.2014, 22:12  [ТС]     AlarmManager не работает после закрытия приложения #9
просто непонятно почему везде описано что это работает в качетсве будильника, то есть челловек выключил всё (программу) и получил оповещение в нужный момент... то есть и в манифесте всякие WAKE_UP прописываются и т д. а оно не работает - это как не по гугловски)))) у кого нить подоббное работало вооще?
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
27.12.2014, 00:03     AlarmManager не работает после закрытия приложения #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 секунды пока, падлюку, не прибьёшь через таск киллер

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

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

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

Ни в том, ни в другом случае в приведенном выше примере сам alarm НЕ убивается и он продолжает надоедать своими сообщениями каждые 2 секунды....
Gabberr
 Аватар для Gabberr
101 / 101 / 17
Регистрация: 13.10.2009
Сообщений: 402
27.12.2014, 22:12     AlarmManager не работает после закрытия приложения #17
Перенесите логику в сервис и в методе onStartCommand() возвращайте START_STICKY, тогда после завершения вашего приложения сервис воскреснет.
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
27.12.2014, 23:32     AlarmManager не работает после закрытия приложения #18
Ну, человек пытается добиться, что не так у него с alarm как-бы, а его в ответ посылают на сервис...
mercooliy
6 / 6 / 0
Регистрация: 12.05.2013
Сообщений: 133
27.12.2014, 23:40  [ТС]     AlarmManager не работает после закрытия приложения #19
START_STICKY не пашет)) но по ходу я понял в чем проблема - есть две версии дроида 4-го (4.2.2 и 4.4 ) так вот в последнем ничего не работает с алармом и сервисами а вот в 4.2.2 всё с..ка работает..... так что видать с ничего видать не сделать...
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.12.2014, 12:24     AlarmManager не работает после закрытия приложения
Еще ссылки по теме:

Кнопки удаляются после закрытия приложения Android
Как создать массив который сохраняет свои значение даже после закрытия приложения Android
Не работает AlarmManager Android
Android Не удается остановить воспроизведение потока после закрытия и открытия приложения
Обновление приложения и AlarmManager Android

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

Или воспользуйтесь поиском по форуму:
Spelcrawler
522 / 492 / 110
Регистрация: 12.03.2014
Сообщений: 1,643
Завершенные тесты: 1
28.12.2014, 12:24     AlarmManager не работает после закрытия приложения #20
mercooliy, такая же проблема была с GCM - после завершения приложения сообщения не приходят. Везде пишут что все должно работать без дополнительных телодвижений. Порылся еще и пришел к выводу, что во всем виновата MIUI, как вижу на скрине, у вас тоже MIUI. Видимо там приложения полностью убиваются при свайпе из меню "Последние приложения".
Yandex
Объявления
28.12.2014, 12:24     AlarmManager не работает после закрытия приложения
Ответ Создать тему
Опции темы

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