单击推送通知

时间:2017-09-11 17:44:17

标签: android push-notification android-broadcastreceiver

我有一个自定义对话框,我想在用户点击推送通知后显示该对话框。我在这里使用FirebaseMessagingService

以下是我接收推送通知的代码。我正在制作一个意图并播放它。

@Override
public void onMessageReceived(RemoteMessage remoteMessage) {
    super.onMessageReceived(remoteMessage);

   if (remoteMessage.getData().size() > 0) {
        Intent intent = new Intent(Cons.INTENT_FILTER);

        try {
            // getting my data here
            Bundle bundle = new Bundle();
            bundle.putSerializable(key, data);
            intent.putExtras(bundle);
        }
        catch (Exception e){

        }
        sendBroadcast(intent);
    }

}

在我的基本活动中,我使用BroadcastReceiver来接收意图和显示对话框。

private BroadcastReceiver myReceiver = new BroadcastReceiver() {
    @Override
    public void onReceive(Context context, Intent intent) {

        FragmentTransaction transaction = getFragmentManager().beginTransaction();
        DialogFragment dialogFragment = new CustomDialog();
        Bundle bundle = new Bundle();
       // I am getting data from intent.
        bundle.putSerializable(key, data);
        dialogFragment.setArguments(bundle);
        dialogFragment.show(transaction, "dialog");
    }
};

如果app位于前台,我可以看到包含所有数据的对话框。如果应用程序处于后台或应用程序未运行,则此代码不起作用。

我试图寻找能够获得应用程序运行状态的解决方案,并根据条件进行调整。我想知道是否有其他解决方案。 感谢。

1 个答案:

答案 0 :(得分:0)

简单地将活动作为对话框并使用它。

将对话框主题设置为您的活动:

<activity name=".MyDialogActivity" android:theme="Theme.AppCompat.Dialog"/>