2013-03-11 1 views
1

У меня есть коллекция напоминаний в моей базе данных (сортировка по времени). Когда мое приложение начинается, я звоню setAlarm. Мне нужно добавить код в onReceive метод для того, чтобы выполнить следующие задачи:Android: установка нового сигнала тревоги из метода onReceive

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

Я создал простой класс BroadcastReceiver:

public class AlarmReceiver extends BroadcastReceiver{ 
    private static final String DEBUG_TAG= "AlarmReceiver"; 

    public void onReceive(Context arg0, Intent arg1) { 
     // TODO Auto-generated method stub 
     Log.d(DEBUG_TAG,"ALARM!!!"); 
      // --mycode-- 
    } 
} 

и класс активности:

public class AlarmActivity extends Activity { 

    private Context context; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_layout); 
     context = getApplicationContext(); 
    } 


    public void setAlarm(View v){ 
     Intent intent = new Intent(this,AlarmReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
     AlarmManager alarmManager = (AlarmManager)getSystemService(ALARM_SERVICE); 
     alarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+ Delay,pendingIntent); 
     Log.i("SETTER","Alarm started"); 

    } 

    public void stopAlarm(View v){ 
     Intent intent = new Intent(this,AlarmReceiver.class); 
     PendingIntent pendingIntent = PendingIntent.getBroadcast(context, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); 
     pendingIntent.cancel(); 
    } 
} 

Теперь, я бы, что в разделе --mycode-- новая Задержка берется (если он существует) из база данных и новый Тревога установлены с этой новой задержкой. Как установить новый AlarmManager из метода onReceive?

+1

Можете ли вы объяснить более подробно его трудно получить – DjHacktorReborn

ответ

1

Вы можете получить AlarmManager в вещательном приемнике доступа к нему из контекста

AlarmManager alarmManager = (AlarmManager)arg0.getSystemService(Context.ALARM_SERVICE); 

где arg0 является ваш контекст переменной

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

  • Нет связанных вопросов^_^