【问题标题】:What is context when a BroadcastReceiver is called?调用 BroadcastReceiver 时的上下文是什么?
【发布时间】:2018-10-17 06:40:45
【问题描述】:

我知道这是一个广泛的问题,但这可能是任何普通 Android 开发人员的问题。在BroadcastReceiver中,通过onReceive()方法传递的context参数是什么?

public class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {

    }
}

我只知道我们有 3 种主要类型的 contextActivityServiceApplication

【问题讨论】:

  • 查看接受的答案。
  • 谢谢!这是否意味着收到广播时会调用我的应用程序的应用程序类? @库努
  • 如果你的是静态广播接收器,那么在你的情况下上下文类是 android.app.ReceiverRestrictedContext 和应用程序上下文类是 android.app.Application(或者你继承的应用程序类,如果你正在使用用户定义的应用程序)
  • “我只知道我们有 3 种主要的上下文类型:活动、服务、应用程序”——还有很多其他类型。不要对传递给onReceive()Context 的性质做出任何假设。

标签: android android-context android-broadcastreceiver


【解决方案1】:

最初 Context 表示环境数据,它用于创建应用程序特定的资源。

例如,如果您为使用“this”关键字作为上下文的类创建一个新对象,则该对象是该特定类的资源,而不是其他类的资源。

context 还用于共享系统资源,如 layoutInflater、NotificationManager 等。

在广播接收器中,上下文是指广播接收器正在运行的活动或类。如果您的“MainActivity”发送广播,则上下文将类似于以下“com.example.MainActivity”

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-27
    • 2011-05-03
    • 2011-05-11
    相关资源
    最近更新 更多