如何在Android中获取类(非活动)的上下文?

时间:2014-02-15 06:20:49

标签: java android sqlite class android-context

我在StackOverflow上遇到过这个问题,但我无法使用建议的解决方案。最常见的解决方案之一是扩展Application类,但我无法做到这一点,因为我所在的类已经扩展了另一个类。有没有其他方法来获取类的上下文?

public class SMSReceiver extends BroadcastReceiver {
         .......
         .......
         CreateDB dc = new CreateDB(mcontext);
         dc.addBook(new Book(senderPhoneNumber,ang));

}

基本上,我需要收到一条消息并将发件人的号码和消息添加到数据库中,我需要获取上下文来创建数据库的实例。我是android的初学者,所以如果你能保持语言简单就会很棒。

3 个答案:

答案 0 :(得分:2)

扩展BroadCastReceiver时,必须添加此方法

 public void onReceive(Context context, Intent intent){

}

你可以看到参数

中有一个上下文

答案 1 :(得分:1)

您可以从Context方法获取onReceive(),如下所示......

public class SMSReceiver extends BroadcastReceiver {

  @Override
  public void onReceive(Context context, Intent intent) {
    CreateDB dc = new CreateDB(context);
    dc.addBook(new Book(senderPhoneNumber,ang));
  }
} 

答案 2 :(得分:0)

Activity的{​​{1}},您可以访问application的{​​{1}}。例如,在您的类中使用静态引用 在您的活动类中创建一个静态引用

Contex

并将其传递到您的SMSReceiver类中,就像这样

activity