我有一个Application类的扩展,我需要在我创建的BroadcastReceiver中获取引用。传递到“onReceive”的上下文是受限制的上下文。有没有办法获得对实际应用程序上下文的引用?
答案 0 :(得分:29)
在getApplicationContext()
中提供的Context
上拨打onReceive()
,就像在getApplicationContext()
上致电Activity
一样。
我有一个应用程序的扩展,允许我非静态地获得对我需要的几个对象的引用。
虽然语法Application
不是静态的,但它具有相同的影响,特别是在内存泄漏方面。
答案 1 :(得分:0)
BroadcastReceiver已经提供了上下文。看看onReceive。
public void onReceive(Context context, Intent intent)
答案 2 :(得分:0)
class SMSReceiver: BroadcastReceiver() {
@RequiresApi(Build.VERSION_CODES.O)
override fun onReceive(context: Context?, intent: Intent?) {
val smsIntent = intent ?: return
val appContext = context?.applicationContext ?: return
// Do something here.
}
}