全局对话 - 如何?

Global dialog - how to?

大家好,我使用 firebase 创建了推送通知,我想将数据设置为对话框,它应该是全局对话框。当通知出现时,应用程序应该每隔 activity 显示一次对话框。请提前帮我创建全局dialog.Thank你!

做一个 BaseActivity 需要被所有 Activity 扩展, 在你的 BaseActivityclass 中写一个 LocalBroadcast 监听器,其中 listen 来自 FireBaseMessaging 服务的广播稍后制作一个对话框来显示在你的 BaseActivity class 中显示消息 你可以在所有 activity 上显示对话框(它扩展了 base activity)

在全局 class 中创建一个静态函数,以便可以从任何其他 activity 访问。也许下面的代码可以帮到你。

    public class AppDialog {
       public static void showAppSettingDialog(Context context, String title, String msg,
                                            DialogInterface.OnClickListener positiveClick,
                                            DialogInterface.OnClickListener negativeClick) {
        AlertDialog alertDialog = null;
        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);
        // set title
        alertDialogBuilder.setTitle(title);
        // set dialog message
        alertDialogBuilder
                .setMessage(msg)
                .setCancelable(false)
                .setPositiveButton(context.getText(R.string.txt_countinue), positiveClick)
                .setNegativeButton(context.getText(R.string.txt_not_now), negativeClick);

        // create alert dialog
        alertDialog = alertDialogBuilder.create();
        alertDialog.getWindow().getAttributes().windowAnimations = R.style.DialogAnimation;
        // show it
        alertDialog.show();
    }
}

调用函数如下:

 AppDialog.showAppSettingDialog(HomeActivity.this,
                    getString(R.string.txt_read_permission_title), getString(R.string.txt_read_permission),
                    positiveClick, negativeClick);

您可以通过在按钮点击中传递点击并获取它来让您点击个人 screen/activity,如下所示:

    positiveClick = new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
              // your positive click
            }
        };

        negativeClick = new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
            // your negative click
                dialogInterface.dismiss();
            }
        };