背景不能得到解决 [英] Context Cannot be Resolved

查看:196
本文介绍了背景不能得到解决的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我试图用一种方法来安排这里描述的每月报警:

<一个href="http://stackoverflow.com/questions/7568233/how-to-implement-yearly-and-monthly-repeating-alarms">How实行年度和月度重复报警?

不过我对线条让两个错误:

  AlarmManager AM =(AlarmManager)上下文
                .getSystemService(Context.ALARM_SERVICE);
 

  PendingIntent发送= PendingIntent.getBroadcast(背景下,
 

指出背景下解决不了和上下文不能被解析为一个变量

...如何这样可以解决什么建议?

 公共类报警延伸服务{

    // compat的支持旧设备
     @覆盖
     公共无效ONSTART(意向意图,诠释startId){
     onStartCommand(意向,0,startId);
     }

    @覆盖
    公众诠释onStartCommand(意向意图,诠释标志,诠释startId){
        //你的方法来检查是否报警今天必须被解雇

        PendingIntent发送= PendingIntent.getBroadcast(背景下,
                的Integer.parseInt(Long.toString(ID)),意图,0);

        台历挂历= Calendar.getInstance();
        calendar.setTimeInMillis(calendar.getTimeInMillis());
        calendar.add(Calendar.SECOND,30);

        AlarmManager AM =(AlarmManager)上下文
                .getSystemService(Context.ALARM_SERVICE);

        calendar.add(Calendar.MONTH,1);

        am.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),发送方);

        //重新安排我再次检查明天
        意图serviceIntent =新的意图(Alarm.this,Alarm.class);
        PendingIntent restartServiceIntent = PendingIntent.getService(
                Alarm.this,0,serviceIntent,0);
        AlarmManager报警=(AlarmManager)getSystemService(ALARM_SERVICE);
        //取消previous报警
        alarms.cancel(restartServiceIntent);
        //今天+ 1天的时间表报警
        台历挂历= Calendar.getInstance();
        calendar.add(Calendar.DATE,1);

        //调度报警
        alarms.set(AlarmManager.RTC_WAKEUP,calendar.getTimeInMillis(),
                restartServiceIntent);
    }

    @覆盖
    公共无效的onCreate(){

        // TODO自动生成方法存根

    }

    @覆盖
    公众的IBinder onBind(意向意图){

        // TODO自动生成方法存根

        返回null;

    }

    @覆盖
    公共布尔onUnbind(意向意图){

        // TODO自动生成方法存根

        返回super.onUnbind(意向);

    }

}
 

解决方案

Service是一个上下文,所以试试这个code:

  AlarmManager AM =(AlarmManager)getSystemService(Context.ALARM_SERVICE);

PendingIntent发送= PendingIntent.getBroadcast(这一点,
 

I'm attempting to use a method to schedule monthly alarms described here:

How to implement yearly and monthly repeating alarms?

However I'm getting two errors on the lines:

AlarmManager am = (AlarmManager) context
                .getSystemService(Context.ALARM_SERVICE);

and

PendingIntent sender = PendingIntent.getBroadcast(context,

stating "context cannot be resolved" and "context cannot be resolved to a variable"

...any suggestions on how this can be resolved?

 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);

    }

}

解决方案

Service is a Context, so try this code:

AlarmManager am = (AlarmManager)getSystemService(Context.ALARM_SERVICE);

PendingIntent sender = PendingIntent.getBroadcast(this,

这篇关于背景不能得到解决的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆