【发布时间】:2013-10-11 16:05:26
【问题描述】:
我对 Android 比较陌生,
我已阅读有关检测网络连接更改的相关文章,并已实现此BroadcastReceiver 子类,对 AndroidManifest.xml 进行了必要的添加,并且我按预期收到了必要的状态更改广播:
public class NetworkStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
}
}
问题是:如何在Activity 子类中接收或转发这些通知?显然在我的Activity 子类中创建NetworkStateReceiver 的实例并覆盖onReceive 并没有成功。
提前感谢您的任何指点...
编辑:
我最终从上面的onReceive 广播了一个Intent,如下所示:
Intent target = new Intent(CONNECTIVITY_EVENT);
target.putExtra(CONNECTIVITY_STATE, networkInfo.isConnected());
context.sendBroadcast(target);
并在我的Activity 中收到这样的信息:
@Override
protected String[] notifyStrings() {
return ArrayUtils.addAll(super.notifyStrings(), new String[] {NetworkStateReceiver.CONNECTIVITY_EVENT});
}
@Override
protected void notifyEvent(Intent intent, String action) {
super.notifyEvent(intent, action);
if (action != null) {
if (action.equalsIgnoreCase(NetworkStateReceiver.CONNECTIVITY_EVENT)) {
boolean isConnected = intent.getBooleanExtra(NetworkStateReceiver.CONNECTIVITY_STATE, true);
// Do something...
}
}
}
【问题讨论】:
标签: java android networking android-activity broadcastreceiver