我在StackOverflow上遇到过这个问题,但我无法使用建议的解决方案。最常见的解决方案之一是扩展Application类,但我无法做到这一点,因为我所在的类已经扩展了另一个类。有没有其他方法来获取类的上下文?
public class SMSReceiver extends BroadcastReceiver {
.......
.......
CreateDB dc = new CreateDB(mcontext);
dc.addBook(new Book(senderPhoneNumber,ang));
}
基本上,我需要收到一条消息并将发件人的号码和消息添加到数据库中,我需要获取上下文来创建数据库的实例。我是android的初学者,所以如果你能保持语言简单就会很棒。
答案 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