15

我有一个 Application 类的扩展,我需要在我创建的 BroadcastReceiver 中获取引用。传递给“onReceive”的上下文是一个受限上下文。有没有办法获得对实际应用程序上下文的引用?

4

3 回答 3

29

调用getApplicationContext()提供Context给您的 in onReceive(),就像getApplicationContext()调用Activity.

我有一个应用程序的扩展,它允许我非静态地获取对我需要的几个对象的引用。

虽然语法Application上不是静态的,但它具有相同的影响,尤其是在内存泄漏方面。

于 2012-07-03T22:22:24.280 回答
0

BroadcastReceiver 已经给出了上下文。看看onReceive。

public void onReceive(Context context, Intent intent)
于 2014-04-01T12:37:27.780 回答
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.
    }
}
于 2021-07-14T14:18:11.157 回答