【发布时间】:2017-08-04 19:47:24
【问题描述】:
我在我的应用程序中使用 firebase 推送通知,如果应用程序在前台,我会在接收消息时向另一个活动广播意图。但我没有得到在定向活动中编写的 BroadcastReceiver 的意图。
发送意图就像
@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
super.onMessageReceived(remoteMessage);
if (isAppIsInBackground(this)){
int dbcount = Integer.parseInt(dbHelper.getPushCount());
int i = count;
int current = dbcount +4;
dbHelper.updatePushCount(Integer.toString(current));
} else {
Intent intent = new Intent(this, NavigationHome.class);
intent.setAction("new.pushMessage");
intent.putExtra("count", count.toString());
sendBroadcast(intent);
}
}
我想要获得意图的活动中的接收者是
public class NavigationHome extends BaseActivity
implements NavigationView.OnNavigationItemSelectedListener {
int count=0;
Context context;
private BroadcastReceiver LandingBr = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.e("received",""+1);
NavigationHome.this.update();
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_navigation_home);
dbhelper = new DBHelper(this);
.......
update() 函数没有被调用,如何在 Activity 中获取意图?
【问题讨论】:
-
您是否在清单文件中注册了您的接收器?
-
你必须在Activity中注册BroadcastReceiver。
-
为什么需要这样做?我已经在 Activity 本身中定义了它。你能说清楚吗?
标签: android firebase broadcastreceiver firebase-cloud-messaging