2012-02-24 27 views
0

在这段代码中,我有一个问题,我不知道如何设置setRecurringAlarm()的上下文。在这个代码示例中,我把这个但我不确定是否正确。在广播接收器中为发生重复警报设置上下文

public class AlarmReceiver extends BroadcastReceiver { 

private static final int INTERVAL = 15*1000; // check every 15 seconds 

    @Override 
    public void onReceive(Context context, Intent intent) { 
     if(intent.getAction() != null) { 
      if (intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)) { 
       Log.v(TAG, "BroadcastReceiver - Received Boot Completed; Set Alarm"); 

       setRecurringAlarm(this); 
      }else{ 
       Log.v(TAG, "BroadcastReceiver - Received " + intent.getAction()); 
      } 
     }else{ 
      Log.v(TAG, "BroadcastReceiver - Received AlarmService"); 
     } 
    } 

    private void setRecurringAlarm(Context context) { 
     Intent receiver = new Intent(context, AlarmReceiver.class); 
     PendingIntent recurringDownload = PendingIntent.getBroadcast(context, 0, receiver, PendingIntent.FLAG_CANCEL_CURRENT); 
     AlarmManager alarms = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE); 
     alarms.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), INTERVAL, recurringDownload); 
    } 
} 

回答

0

你有你的背景onReceive(Context context, Intent intent),使用它。

+0

OMG大声笑我觉得自己像一个白痴 – Rawr 2012-02-24 22:40:49

+0

看起来像它的工作,哈哈感谢打开我的眼睛:D – Rawr 2012-02-25 01:18:39

+0

@Rawr没有problemo :)顺便说一句'这'不会做,因为'BroadcastReceiver'不是'Context'作为一个“服务”是例如) – IBoS 2012-02-25 01:27:20