我有一个Application类的扩展,在我创建的BroadcastReceiver中需要获取其引用。传递到“onReceive”方法中的上下文是受限上下文。是否有一种方法可以获取到实际的应用程序上下文引用?
我有一个Application类的扩展,在我创建的BroadcastReceiver中需要获取其引用。传递到“onReceive”方法中的上下文是受限上下文。是否有一种方法可以获取到实际的应用程序上下文引用?
在 onReceive()
中提供给您的 Context
上调用 getApplicationContext()
,就像您在 Activity
上调用 getApplicationContext()
一样。
我有一个应用程序的扩展,允许我非静态地获取我需要的几个对象的引用。
尽管从语法上说,Application
不是静态的,但它具有相同的影响,特别是与内存泄漏相关。
BroadcastReceiver已经提供了上下文。请查看onReceive。
public void onReceive(Context context, Intent intent)
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.
}
}