如何从广播接收器获取应用上下文?

时间:2012-07-03 21:18:32

标签: android

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

3 个答案:

答案 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.
    }
}