我目前工作的一個動態壁紙,其需要跟蹤的未讀短信數量的。 當短信收到我更新這樣的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爲正確的值,我將不得不用上面的代碼初始化它。問題在於它需要一個上下文。當我嘗試將應用程序上下文傳遞給Broadcast接收者的構造函數時,我得到一個「無空的構造函數」異常。
爲什麼在構造函數上傳遞上下文,如果您在onReceive方法上接收到上下文? –
因爲我需要使用相同的代碼來初始化mSMSCount,該代碼需要onReceive方法之外的上下文。 – CalvinWylie