2012-01-12 11 views
7

nolu bir amaçtan bir amaç için tetiklenmeye çalışıyorum ContentObserver sayfamdaki onChange() yönteminden bir amaç çıkarmak istiyorum. Bir SMS gönderilir, böylece ContentObserver, ancak Eclipse bana "bağlam" çözemez çünkü bana hata veriyor, çalıştırmak için bir hizmet almaya çalışıyorum. Aşağıda sınıf için kodum var.Bir 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(); 
    } 
    } 
} 

cevap

11

örneği oluşturulduğunda sadece SmsObserver içine uygulama bağlamı geçmesi olamaz bir neden mi var?

public class SmsObserver extends ContentObserver { 

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

çağırma sınıfı:

new SmsObserver(handler, getApplicationContext()) 
+1

teşekkürler! Bu çalışıyor. –

+4

Dikkatli olun ve uygulama içeriğini ve _not_ aktivitesini iletin! – espinchi