android - 如何在保持构造函数为空的同时将应用程序上下文传递给广播接收器

标签 android constructor broadcastreceiver android-context

我目前正在开发一个动态壁纸,它需要跟踪未读短信的数量。 收到 SMS 后,我会像这样更新 SMSCount:

@Override
public void onReceive(Context context, Intent intent) {
    final Uri SMS_INBOX = Uri.parse("content://sms/inbox");

    Cursor c = context.getContentResolver().query(SMS_INBOX,
                                                  null,
                                                  "read = 0",
                                                  null,
                                                  null);
    mSMSCount = c.getCount();
    c.close();
}

哪个工作正常。但是,该值仅在收到消息时才会更新,因此在此之前它会给出不正确的值(SMSCounts 初始化值)。因此,要将 SMSCount 初始化为正确的值,我必须使用上面的代码对其进行初始化。问题是它需要上下文。当我尝试将应用程序上下文传递到广播接收器的构造函数时,我得到一个“无空构造函数”异常。

最佳答案

只需继续向您的类添加一个空构造函数以及您当前将上下文传递到其中的构造函数,换句话说,添加一个不带参数的构造函数。

关于android - 如何在保持构造函数为空的同时将应用程序上下文传递给广播接收器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15689762/

相关文章:

android ffmpeg错误致命信号11

java - 在鼠标单击或触摸时将 box2d 主体隐藏

android - 警报管理器不适用于具有 BroadcastReceiver 的应用程序

Android:ACTION_BATTERY_LOW 未在模拟器中触发。接收器在代码中注册,而不是 list

android - 在android中检测用户接听来电的结束? (未拒绝)

java - VideoView的setVideoPath和setVideoURI有什么区别

java - 在 Android 中以编程方式创建具有自定义列表项的 ListView - 无 xml 列表项布局

ios - 在所有构造函数中不调用 super 的类实例化

c++ - 在 C++ 文档教程的这个示例中,为什么指针声明了两次?

Java 更好的方法来编码这个简单的参数摄入?