我有一个自定义对话框,我想在用户点击推送通知后显示该对话框。我在这里使用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位于前台,我可以看到包含所有数据的对话框。如果应用程序处于后台或应用程序未运行,则此代码不起作用。
我试图寻找能够获得应用程序运行状态的解决方案,并根据条件进行调整。我想知道是否有其他解决方案。 感谢。
答案 0 :(得分:0)
简单地将活动作为对话框并使用它。
将对话框主题设置为您的活动:
<activity name=".MyDialogActivity" android:theme="Theme.AppCompat.Dialog"/>