|
ошибка AlarmManager
|
|||
---|---|---|---|
#18+
Здравствуйте! Ранее я создал AlarmManager с public class Ressive extends BroadcastReceiver ,все работало хорошо ,в такой связке . Но после перезагрузки телефона , AlarmManager уничтожался . Поэтому я решил создать ещё один BroadcastReceiver (BroadcastReceiver+ БД) , который будет восстанавливать будильник после перезагрузки телефона . написав его он начал как-то странно работать с ошибками. Нельзя сказать что и не работает и нельзя сказать обратное. При загрузки телефона он срабатывает . Устанавливает будильник на 60 секунд . После истечения 60 секунд , появляется та активность которая должна вызваться ( она отлично вызывается если установить будильник через Activity ) , и стразу исчезает . В логах появляются ошибки. У меня есть предположения ( и я уверен на 90%) что все дело в MyAlarms Что то там с контекстом неправильно . Но что именно пока не могу понять( Код: 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. 27. 28.
11-06 13:57:14.409: E/Trace(619): error opening trace file: No such file or directory (2) 11-06 13:57:54.520: E/AndroidRuntime(619): FATAL EXCEPTION: main 11-06 13:57:54.520: E/AndroidRuntime(619): java.lang.RuntimeException: Unable to start receiver com.example.alarmmanager2.Ressive: java.lang.NullPointerException 11-06 13:57:54.520: E/AndroidRuntime(619): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2236) 11-06 13:57:54.520: E/AndroidRuntime(619): at android.app.ActivityThread.access$1500(ActivityThread.java:130) 11-06 13:57:54.520: E/AndroidRuntime(619): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1271) 11-06 13:57:54.520: E/AndroidRuntime(619): at android.os.Handler.dispatchMessage(Handler.java:99) 11-06 13:57:54.520: E/AndroidRuntime(619): at android.os.Looper.loop(Looper.java:137) 11-06 13:57:54.520: E/AndroidRuntime(619): at android.app.ActivityThread.main(ActivityThread.java:4745) 11-06 13:57:54.520: E/AndroidRuntime(619): at java.lang.reflect.Method.invokeNative(Native Method) 11-06 13:57:54.520: E/AndroidRuntime(619): at java.lang.reflect.Method.invoke(Method.java:511) 11-06 13:57:54.520: E/AndroidRuntime(619): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) 11-06 13:57:54.520: E/AndroidRuntime(619): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 11-06 13:57:54.520: E/AndroidRuntime(619): at dalvik.system.NativeStart.main(Native Method) 11-06 13:57:54.520: E/AndroidRuntime(619): Caused by: java.lang.NullPointerException 11-06 13:57:54.520: E/AndroidRuntime(619): at com.example.alarmmanager2.Ressive.onReceive(Ressive.java:48) 11-06 13:57:54.520: E/AndroidRuntime(619): at android.app.ActivityThread.handleReceiver(ActivityThread.java:2229) 11-06 13:57:54.520: E/AndroidRuntime(619): ... 10 more ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 17:25 |
|
ошибка AlarmManager
|
|||
---|---|---|---|
#18+
Предположительно ошибка возникает в этом промежутке кода (AlarmManager)ctxt.getSystemService(Context.ALARM_SERVICE); ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 17:48 |
|
ошибка AlarmManager
|
|||
---|---|---|---|
#18+
а зачем он у вас статичный ? и второе, нельзя что ли выкинуть на сторону сервиса логику и что бы сервис все восстановил и самоубился. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 18:09 |
|
ошибка AlarmManager
|
|||
---|---|---|---|
#18+
Джибс, static убрал , он там и вправду не нужен. Вы имеете в виду создать свой сервис в котором будет функция создания будильника? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 19:11 |
|
ошибка AlarmManager
|
|||
---|---|---|---|
#18+
static я для проверки делал ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 19:17 |
|
ошибка AlarmManager
|
|||
---|---|---|---|
#18+
Вот создал свой сервис . При его вызове, точно такое-же происходит , как я описывал выше. Код: 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. 27. 28. 29. 30. 31.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 20:39 |
|
ошибка AlarmManager
|
|||
---|---|---|---|
#18+
У...Ху...Ху... Решил задачу! Я в первом рессивере не удалил метод удаления пайджинтента. MainActivity.pi.cancel(); // Скидываем наш PendingIntent с системы Вот так вот. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 21:36 |
|
ошибка AlarmManager
|
|||
---|---|---|---|
#18+
Кто знает , может можно не удалять PendingIntent который уже отработал ? Не будет ли он мешать системе? Или лучше все таки удалять их, после использования? pi.cancel(); ... |
|||
:
Нравится:
Не нравится:
|
|||
06.11.2014, 22:19 |
|
ошибка AlarmManager
|
|||
---|---|---|---|
#18+
НикоДимиденMainActivity.pi.cancel(); // Скидываем наш PendingIntent с системы Там вообще-то есть флаги: авторIf you only need one PendingIntent active at a time for any of the Intents you will use, then you can alternatively use the flags FLAG_CANCEL_CURRENT or FLAG_UPDATE_CURRENT to either cancel or modify whatever current PendingIntent is associated with the Intent you are supplying. НикоДимиденКто знает , может можно не удалять PendingIntent который уже отработал ? За собой принято убирать. Особенно с учетом, что оно может жить, даже если приложение прибито. авторA PendingIntent itself is simply a reference to a token maintained by the system describing the original data used to retrieve it. This means that, even if its owning application's process is killed, the PendingIntent itself will remain usable from other processes that have been given it. If the creating application later re-retrieves the same kind of PendingIntent (same operation, same Intent action, data, categories, and components, and same flags), it will receive a PendingIntent representing the same token if that is still valid, and can thus call cancel() to remove it. ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2014, 09:28 |
|
|
start [/forum/topic.php?fid=13&msg=38797628&tid=1331524]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
38ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
1ms |
others: | 253ms |
total: | 394ms |
0 / 0 |