我正在尝试构建一个聊天应用程序,并且每当有新消息进入时我都成功实现了fcm通知 . 但我的问题是当我在聊天时我不想接收fcm通知,因为我在聊天窗口(我的聊天片段)无论如何 . 如何实施?
以下是Commonsware的有序广播的有趣方法 .
定义要在事件发生时用于转到活动或通知的操作字符串(例如, com.commonsware.java.packages.are.fun.EVENT ) .
com.commonsware.java.packages.are.fun.EVENT
在您的活动中动态注册 BroadcastReceiever ,为上述操作字符串设置 IntentFilter 并具有正优先级(过滤器的默认优先级为0) . 然后,此接收器应该让活动执行基于此事件更新UI所需的任何操作 . 接收方也应该拨打 abortBroadcast() 以防止其他人接收它 . 务必在 onStart() 或 onResume() 中注册接收器,并在相应的 onStop 或 onPause() 方法中取消注册接收器 .
BroadcastReceiever
IntentFilter
abortBroadcast()
onStart()
onResume()
onStop
onPause()
在清单中注册 BroadcastReceiver ,并为上述操作字符串设置 <intent-filter> . 该接收者应该提出通知 .
BroadcastReceiver
<intent-filter>
在您的服务中(例如, IntentService ),当事件发生时,请调用 sendOrderedBroadcast() .
IntentService
sendOrderedBroadcast()
完整描述here.
1 回答
以下是Commonsware的有序广播的有趣方法 .
定义要在事件发生时用于转到活动或通知的操作字符串(例如,
com.commonsware.java.packages.are.fun.EVENT
) .在您的活动中动态注册
BroadcastReceiever
,为上述操作字符串设置IntentFilter
并具有正优先级(过滤器的默认优先级为0) . 然后,此接收器应该让活动执行基于此事件更新UI所需的任何操作 . 接收方也应该拨打abortBroadcast()
以防止其他人接收它 . 务必在onStart()
或onResume()
中注册接收器,并在相应的onStop
或onPause()
方法中取消注册接收器 .在清单中注册
BroadcastReceiver
,并为上述操作字符串设置<intent-filter>
. 该接收者应该提出通知 .在您的服务中(例如,
IntentService
),当事件发生时,请调用sendOrderedBroadcast()
.完整描述here.