如何收听消息阅读事件

Posted

技术标签:

【中文标题】如何收听消息阅读事件【英文标题】:How can I listen for message read event 【发布时间】:2015-12-10 22:19:08 【问题描述】:

我正在制作一个小部件,其中我在图标上显示未读消息计数。我正在监听传入的消息,我可以使用意图过滤器增加计数: "android.provider.Telephony.SMS_RECEIVED"

我还可以随时通过以下方式获取未读消息数:

final Uri SMS_INBOX = Uri.parse("content://sms/inbox");
Cursor c = context.getContentResolver().query(SMS_INBOX, null, "read = 0", null, null);
int unreadMessagesCount = c.getCount();

但我不想定期调用该函数。反而 如果用户阅读了未读消息,我想减少我的小部件图标的计数。有没有办法可以为“消息读取事件”设置监听器,即如果用户打开未读消息?

【问题讨论】:

您好,您对此有什么解决方案吗? 【参考方案1】:

您可以使用 BroadcastReceiver 来解决问题。

请参考链接: http://javapapers.com/android/android-receive-sms-tutorial/

【讨论】:

这个例子是关于拦截和读取传入的消息。我不是在尝试模拟消息应用程序。我正在寻找一种方法来让我的小部件 UI 在任何情况下都保持更新。 IE。即使用户不直接与小部件交互。

以上是关于如何收听消息阅读事件的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Windows 通知上收听点击事件?

孩子们如何收听/捕捉父母的事件

如何在 javascript 中收听表单提交事件?

如何收听CytoscapeJS节点的拖动事件(仅包括光标/手指正下方的事件)

如何收听组小部件(Java SWT)的文本修改事件?

收听 Youtube 上传事件 Java