2016-02-24 4 views
0

Я пробовал много сделать эту работу, но я не могу понять, что случилось. Если я позвоню sendBroadcast(new Intent(ACTION)), мой радиовещательный приемник получает называется, но он не работает с AlarmManager:BroadcastReceiver с AlarmManager и AndroidAnnotations

@EReceiver 
public class MyBroadcastReceiver extends AbstractBroadcastReceiver { 

public static final int REQUEST_CODE = 12345; 
public static final String ACTION = "com.xxx.yyy.alarm"; 

public static void setAlarm(Context context) { 
    Log.e("AUTOMATIC", "setAlarm"); 
    AlarmManager alarmManager = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); 
    Intent intent = new Intent(context, MyBroadcastReceiver.class); 
    intent.setAction(ACTION); 
    PendingIntent pIntent = PendingIntent.getBroadcast(context, REQUEST_CODE, intent, 0); 
    alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), 5000, pIntent); 
} 

@ReceiverAction(ACTION) 
public void init(Context context) { 
    Log.e("BROADCAST", "woke up receiver action"); 
    MyService_.intent(context).run().start(); 
} 
} 

ответ

1

Проблема заключается в том, что вы используете оригинальный класс в намерениях, а не генерируется один. Измените следующим образом:

Обратите внимание на знак подчеркивания в названии класса.

+0

OMG! Я был уверен, что уже пробовал это, но, вероятно, когда я это сделал, я сделал еще одну ошибку, которая его покрыла .. Большое вам спасибо! – danielapsmaior

0

Вы должны реализовать onReceived метод в классе, которые расширяют BroadcastReceiver

@Override 
public void onReceive(Context context, Intent intent) { 
    if (intent.getAction().equals("android.intent.action.BOOT_COMPLETED")) { 
     // Set the alarm here. 
    } 
} 

А также Дон» забудьте разрешение:

, а также добавить это в ваш манифест, если это не было сделано ранее:

<receiver android:name="com.theClassThatExtendBroadcastReceiver"> 
    </receiver> 

Для получения дополнительной информации: http://developer.android.com/training/scheduling/alarms.html

+0

Это не нужно при использовании AndroidAnnotations ... – WonderCsabo

+0

Что не нужно? – king

+1

Переопределение onReceive. Это генерируется с помощью AndroidAnnotations. – WonderCsabo