2012-03-26 5 views
0

У меня проблема с моим BroadcastReceiver. В принципе, у меня есть функция в моем сервисе, которую я хочу назвать каждый, скажем, 2 часа. Поэтому я использовал приемник AlarmManager и Broadcast, но похоже, что приемник никогда не вызывается. Мой код:Android - BroadcastReceiver никогда не звонил из AlarmManager

в методе OnCreate сервиса:

Intent intent5 = new Intent("MYINTENT"); 
sender2 = PendingIntent.getBroadcast(this, 192838, intent5, PendingIntent.FLAG_UPDATE_CURRENT); 
am2 = (AlarmManager)this.getSystemService(Context.ALARM_SERVICE); 
am2.setRepeating(AlarmManager.RTC_WAKEUP, Calendar.getInstance().getTimeInMillis(), 1000*60*60*2, sender2); 

BroadcastReceiver connectionReceiver = new BroadcastReceiver() { 
    @Override 
    public void onReceive(Context context, Intent intent) { 
     check(); 
    } 
    }; 

    registerReceiver(connectionReceiver, new IntentFilter("MYINTENT")); 

и затем есть обратный метод

public static void check(){ 
    //some code 
} 

() Я также попытался создающим класс простирающегося BroadcastReceiver, зарегистрировав его в Манифест и т. Д., И его вызвали, но затем я получил исключение NullPointerException, вызывающее meteod проверки сервиса() из BroadcastReceiver.

ответ

0

Я также попытался класс создающих простирающегося BroadcastReceiver, зарегистрировав его в манифесте и т.д., и он получил колл, но потом я получил NullPointerException призывающего чека() metheod сервиса внутри BroadcastReceiver.

Вернитесь к этому решению, затем исправьте NullPointerException. Скорее всего, Android завершил процесс вашего приложения, который вызвал registerReceiver() (например, пользователь нажал HOME и не вернулся к процессу). check() - что бы это ни было - должен предположить, что это совершенно новый процесс. Ваш NullPointerException, вероятно, исходит от check(), думая, что что-то должно быть инициализировано, когда это не так.

+0

Да, это действительно лучшее решение. Когда я наконец нашел причину этого исключения, он работал как шарм. Благодаря! – ThunderSS

Смежные вопросы