【问题标题】:Broadcast data from FCM while app is in foreground not getting in BroadcastReceiver应用程序在前台时从 FCM 广播数据未进入 BroadcastReceiver
【发布时间】: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


【解决方案1】:

创建 MyReceiver 类,在活动中扩展 BroadcastReceiver。

class MyReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        // do your stuff here
    }
}

然后在特定活动的 onCreate() 中注册您的 BroadcastReceiver。使用以下代码。

MyReceiver myReceiver =new MyReceiver();
IntentFilter intentFilter= new IntentFilter(Constants.ACTION);
registerReceiver(myReceiver,intentFilter);

【讨论】:

  • 它也不起作用。你能告诉我的代码有什么问题吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-04-25
  • 1970-01-01
  • 2018-12-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多