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

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

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

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

26.12.2014, 09:42. Просмотров 1951. Ответов 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):

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

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

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

Не удается остановить воспроизведение потока после закрытия и открытия приложения - Программирование Android
Написал приложение для воспроизведения аудио-потока. Кнопки Старт и Стоп работают нормально. Если закрыть приложение не выключая поток,...

После закрытия приложения пользователем код в таймере продолжает выполняться - Программирование Android
Если запустить таймер в android с периодом в пять секунд выполнения действия и в функции run() накодить какой то процесс. То после закрытия...

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

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

Не по теме:

reciver
resiever
receiver

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

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

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

Врочем, если вы так закрываете, то Kastaneda уже достаточно дал инфорации по такой теме.
mercooliy
6 / 6 / 0
Регистрация: 12.05.2013
Сообщений: 138
27.12.2014, 21:41  [ТС] #15
тогда печаль, потому как именно так я всегда к примеру и закрываю а если на кнопку хом выходить, тогда все примеры работают (в том числе и просто с сервисами) тогда не понятно как же делать чтобы работало так как я хочу. по идее как вариант это убрать отображение приложения в таск килере (я это делал в манифесте вот так android:excludeFromRecents="true") но когда приложение открыто - всё равно оно отображается там, мож есть мысли как сделать чтобы его там не показывать?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.12.2014, 21:41
Привет! Вот еще темы с ответами:

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

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

AlarmManager после перезагрузки - Программирование Android
По задумке AlarmManager должен отрабатывать раз в день. Включаю (сейчас 18-00): alarmManager.setRepeating( AlarmManager.RTC, ...

AlarmManager работает ли? Состояние - Программирование Android
Как узнать состояние работающего (запущенного ) AlarmManager ? Добавлено через 2 минуты то есть нужна логика if...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
27.12.2014, 21:41
Ответ Создать тему
Опции темы

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