java - 如何设置 TextView 在 Activity 中可见而不是在自定义广播接收器类中?

标签 java android textview broadcastreceiver

我有以下自定义广播接收器类来检查 wi-fi 是否已连接:

public class CustomBroadcastReceiver extends BroadcastReceiver {
    private TextView textView;

    public NetworkStateReceiver(TextView textView) {
        this.textView = textView;
    }

    @Override
    public void onReceive(Context context, Intent intent) {
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
        for (Network network : connectivityManager.getAllNetworks()) {
            NetworkInfo networkInfo = connectivityManager.getNetworkInfo(network);
            if (networkInfo != null) {
                if (networkInfo.getType() == ConnectivityManager.TYPE_WIFI) {
                    boolean isWifiConnected = networkInfo.isConnected();
                    if (isWifiConnected) {
                        textView.setVisibility(View.VISIBLE);
                    }
                }
            }
        }
    }
}

如您所见,我向构造函数传递了一个 TextView 对象,以便在设备连接到 wi-fi 时将其设置为可见。在我的 MainActivity 中,我正在创建一个这样的对象:

CustomBroadcastReceiver receiver = new CustomBroadcastReceiver(textView);

问题是我不想在这个类的 TextView 上进行这个操作,我想在 MainActivity 类中进行。我该如何解决这个问题?

最佳答案

创建一个包含单个方法的接口(interface),如 setIsConnected(Boolean)

MainActivity中,实现这个接口(interface)。该方法将从您的 BroadcastReceiver 调用,在此方法中您可以使用 UI 做任何您想做的事情。

BroadcastReceiver 的构造函数将接口(interface)作为参数而不是 TextView

onReceive() 中,根据 WIFI 的状态调用接口(interface)上的 setIsConnected() 和 boolean 值。

关于java - 如何设置 TextView 在 Activity 中可见而不是在自定义广播接收器类中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57728525/

相关文章:

java - getClassLoader().getResourceAsStream 方法对于扩展名为 ".LIB"的文件返回 null

java - 如何将 SMB 文件链接添加到单元格中?

java - 从 ApplicationContext 获取布局充气器

android - 无法为 SharedPreferences 创建目录

android - 如果不存在,则在文本中添加 http ://www.

android - "Cannot cast TextView to ToggleButton",但它是一个 ToggleButton

java - 如何使用maven解决Heroku上的NoClassDefFoundError?

java - Object.hashCode() 将在多个 jvm(相同版本)之间保持一致

android - 如何动画状态栏和工具栏的颜色变化(就像新的日历应用程序一样)

android - 屏幕旋转导致 TextViews 停止更新