1

我在我的应用程序中使用的Firebase推送通知,在前台应用程序的情况下,我广播意图接收消息的另一个活动。但是我没有得到在定向活动中编写的BroadcastReceiver的意图。来自FCM的广播数据,而应用程序在前台没有进入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()函数没有被调用,我如何获得活动中的意图?

+0

您是否已将接收器注册到清单文件中? –

+0

你必须在Activity中注册BroadcastReceiver。 –

+0

为什么要这样做?我已经在Activity中定义了它。你能否说清楚。 – Visakh

回答

0

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

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); 
+0

它也无法正常工作。你能告诉我的代码有什么问题吗? – Visakh

相关问题