如何显示网络变化状态的对话?

Posted

技术标签:

【中文标题】如何显示网络变化状态的对话?【英文标题】:How to show dialogue for network change states? 【发布时间】:2019-11-29 03:00:30 【问题描述】:

我有一个用于在 android 中更改网络状态的代码。但现在的问题是,当网络状态发生变化时,代码会显示小吃吧。我希望它在网络状态发生变化时显示对话框。我已经做了一切。我只想而不是小吃店对话将显示。

IntentFilter intentFilter = new IntentFilter(NetworkStateChangedReceiver.NETWORK_AVAILABLE_ACTION);
        LocalBroadcastManager.getInstance(this).registerReceiver(new BroadcastReceiver() 
            @Override
            public void onReceive(Context context, Intent intent) 
                boolean isNetworkAvailable = intent.getBooleanExtra(IS_NETWORK_AVAILABLE, false);
                String networkStatus = isNetworkAvailable ? "connected" : "disconnected";

                Snackbar.make(findViewById(R.id.activity_dashboard), "Network Status: " + networkStatus, Snackbar.LENGTH_LONG).show();
            
        , intentFilter);

【问题讨论】:

【参考方案1】:

只需使用AlertDialog.Builder 而不是Snackbar 创建警报对话框。以下几行应该可以工作,

IntentFilter intentFilter = new IntentFilter(NetworkStateChangedReceiver.NETWORK_AVAILABLE_ACTION);
LocalBroadcastManager.getInstance(this).registerReceiver(new BroadcastReceiver() 
    @Override
    public void onReceive(Context context, Intent intent) 
        boolean isNetworkAvailable = intent.getBooleanExtra(IS_NETWORK_AVAILABLE, false);
        String networkStatus = isNetworkAvailable ? "connected" : "disconnected";

        //Snackbar.make(findViewById(R.id.activity_dashboard), "Network Status: " + networkStatus, Snackbar.LENGTH_LONG).show();

        AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
        builder.setMessage(R.string.dialog_message).setTitle(R.string.dialog_title);
        AlertDialog dialog = builder.create();
    
, intentFilter);

【讨论】:

【参考方案2】:

这是一个您可以使用的简单 AlertDialog:

 public static Dialog createSimpleOkDialog(Context context, String title, String message) 
        AlertDialog.Builder alertDialog = new AlertDialog.Builder(context)
                .setTitle(title)
                .setMessage(message)
                .setNegativeButton(android.R.string.ok, null);

        return alertDialog.create();
    

【讨论】:

以上是关于如何显示网络变化状态的对话?的主要内容,如果未能解决你的问题,请参考以下文章

如何在android上获取网络状态变化? [复制]

如何实现控件随对话框大小变化而自动调整大小和位置

【微信小程序】获取当前网络状态,监测网络变化

android 监听网络状态的变化及实战

MFC中怎么让子窗体大小随着父窗口的大小变化而改变?

复选框状态发生变化时如何防止页面跳转?