gpt4 book ai didi

android - 如何访问 list 中声明的​​广播接收器并更改某些属性

转载 作者:行者123 更新时间:2023-11-29 17:33:29 26 4
gpt4 key购买 nike

我在 AndroidManifest.xml 中声明了一个接收器:

    <receiver android:name=".receivers.ConnectionUpdateReceiver">
<intent-filter>
<action android:name="android.net.conn.CONNECTIVITY_CHANGE"/>
</intent-filter>
</receiver>



public class ConnectionUpdateReceiver extends BroadcastReceiver {
private Listener listener;

public void setListener(Listener listener) {
this.listener = listener;
}

@Override
public void onReceive(Context context, Intent intent) {
ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
final NetworkInfo networkInfo = manager.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (networkInfo != null && networkInfo.isConnected()) {
if (listener != null) {
listener.onWifiConnected(networkInfo);
}
}
}

public interface Listener {
void onWifiConnected(NetworkInfo networkInfo);
}
}

我必须为这个类注册一个监听器。但我不知道如何在我的 Activity 类中访问它来设置监听器属性。

我尝试在运行时以通常的方式在我的 Activity 的 onResume 中注册这个接收器:

registerReceiver(connectionUpdateReceiver, new IntentFilter(...));

但我不知道要将什么传递给 IntenetFilter 构造函数,因为

android.net.conn.CONNECTIVITY_CHANGE 

在那里无法访问。

最佳答案

I have to register a listener to this class

这是不可能的,因为在 Android 发送并处理匹配的广播之前,没有 list 注册的 BroadcastReceiver 实例。

I tried to register this receiver at runtime in the usually way in onResume of my activity:

只有去掉 list 条目才有意义。

But I don't know what to pass to IntenetFilter constructor, since android.net.conn.CONNECTIVITY_CHANGE is not accessible there.

欢迎您将 "android.net.conn.CONNECTIVITY_CHANGE" 传递给 IntentFilter 构造函数。它也可用作 ConnectivityManager.CONNECTIVITY_ACTION

关于android - 如何访问 list 中声明的​​广播接收器并更改某些属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31750168/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com