Java 无法解析上下文
我尝试使用一种方法来安排每月警报,如下所述: 但是,我在线路上发现了两个错误:Java 无法解析上下文,java,android,alarmmanager,android-alarms,repeatingalarm,Java,Android,Alarmmanager,Android Alarms,Repeatingalarm,我尝试使用一种方法来安排每月警报,如下所述: 但是,我在线路上发现了两个错误: AlarmManager am = (AlarmManager) context .getSystemService(Context.ALARM_SERVICE); 及 声明“上下文无法解析”和“上下文无法解析为变量” …对如何解决这一问题有何建议 public class Alarm extends Service { // compat to support old
AlarmManager am = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
及
声明“上下文无法解析”和“上下文无法解析为变量”
…对如何解决这一问题有何建议
public class Alarm extends Service {
// compat to support older devices
@Override
public void onStart(Intent intent, int startId) {
onStartCommand(intent, 0, startId);
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
// your method to check if an alarm must be fired today
PendingIntent sender = PendingIntent.getBroadcast(context,
Integer.parseInt(Long.toString(id)), intent, 0);
Calendar calendar = Calendar.getInstance();
calendar.setTimeInMillis(calendar.getTimeInMillis());
calendar.add(Calendar.SECOND, 30);
AlarmManager am = (AlarmManager) context
.getSystemService(Context.ALARM_SERVICE);
calendar.add(Calendar.MONTH, 1);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender);
// reschedule me to check again tomorrow
Intent serviceIntent = new Intent(Alarm.this, Alarm.class);
PendingIntent restartServiceIntent = PendingIntent.getService(
Alarm.this, 0, serviceIntent, 0);
AlarmManager alarms = (AlarmManager) getSystemService(ALARM_SERVICE);
// cancel previous alarm
alarms.cancel(restartServiceIntent);
// schedule alarm for today + 1 day
Calendar calendar = Calendar.getInstance();
calendar.add(Calendar.DATE, 1);
// schedule the alarm
alarms.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(),
restartServiceIntent);
}
@Override
public void onCreate() {
// TODO Auto-generated method stub
}
@Override
public IBinder onBind(Intent intent) {
// TODO Auto-generated method stub
return null;
}
@Override
public boolean onUnbind(Intent intent) {
// TODO Auto-generated method stub
return super.onUnbind(intent);
}
}
服务是一个上下文,请尝试以下代码:
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
PendingIntent sender = PendingIntent.getBroadcast(this,
. 这个和这个服务是一个上下文…谢谢!这解决了有关错误“无法解析上下文”的问题。但是,我仍然在以下行中获得“上下文无法解析为变量”:PendingEvent sender=PendingEvent.getBroadcast(context,Integer.parseInt(Long.toString(id)),intent,0);请注意我的第一个回答:您的服务是一个上下文,所以您可以对所有应该传递上下文的函数使用“this”。PendingEvent sender=PendingEvent.getBroadcast(this,Integer.parseInt(Long.toString(id)),intent,0);啊。。。非常感谢。(另外-我的源代码中还有最后一个问题/错误:id无法解析为变量-我没有看到在我尝试使用的SO示例中声明它-有任何建议吗?)这是“请求代码”,您可以自己定义:,int,android.content.Intent,int)但是关于这个代码的更多细节你应该再谷歌一下)我刚刚读了这篇文章。。。我仍然不知道应该如何声明/定义ID变量
AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
PendingIntent sender = PendingIntent.getBroadcast(this,