2012-01-12 2 views
7

Я хочу уволить намерение от метода onChange() моего ContentObserver. Я пытаюсь запустить службу, когда отправляется SMS, поэтому ContentObserver, но Eclipse дает мне ошибки, потому что он не может разрешить «контекст». Ниже приведен мой код для класса.Попытка уволить намерение с ContentObserver

public class SmsObserver extends ContentObserver { 

public SmsObserver(Handler handler) { 
    super(handler); 
    // TODO Auto-generated constructor stub 
} 

@Override 
public void onChange(boolean selfChange) { 
    super.onChange(selfChange); 

    // On outgoing SMS, do this 
    Intent update = new Intent(context, UpdateService.class); 
    PendingIntent pendingIntent = PendingIntent.getService(context, 0, update, 0); 

    try { 
     pendingIntent.send(); 
    } catch (CanceledException e) { 
     // TODO Auto-generated catch block 
     e.printStackTrace(); 
    } 
    } 
} 

ответ

11

Есть ли причина, по которой вы не можете просто передать контекст приложения в SmsObserver, когда экземпляр создан? Класс

public class SmsObserver extends ContentObserver { 

    private Context context; 
    public SmsObserver(Handler handler, Context context) { 
     super(handler); 
     this.context = context; 
    } 
} 

Вызывающую:

new SmsObserver(handler, getApplicationContext()) 
+1

Спасибо! Это работает. –

+4

Просто будьте осторожны и передайте контекст приложения и не укажите контекст активности! – espinchi

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

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