我正在开发一个应用程序,我正在使用xml解析来显示来自URl的图像。 当互联网断开连接时,我会弹出警报窗口。
现在我的当前活动会自动重启,当我的设备连接网络时。
答案 0 :(得分:1)
您需要BroadcastReceiver
来收听互联网更改。
如果您只需要在活动中使用此逻辑,则可以执行以下操作:
private BroadcastReceiver mReceiver;
private IntentFilter mFilter;
@Override
protected void onCreate(Bundle savedInstanceState) {
mFilter = new IntentFilter("android.net.conn.CONNECTIVITY_CHANGE");
mReceiver = new ConnectionChangeReceiver();
}
@Override
protected void onResume() {
super.onResume();
registerReceiver(mReceiver, mFilter);
}
@Override
protected void onPause() {
super.onPause();
unregisterReceiver(mReceiver);
}
private class ConnectionChangeReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context arg0, Intent i) {
ConnectivityManager connectivityManager = (ConnectivityManager) ActivityActionBar.this
.getSystemService(Context.CONNECTIVITY_SERVICE);
if (connectivityManager.getActiveNetworkInfo() == null) {
onLoseInternet();
}
}
}
onLoseInternet()
方法你应该做点什么来重置一切。
可能性:
到目前为止我找到的最佳方式
在onCreate()
方法中,我有两个电话:getWidgets()
和populateWidgets()
。
getWidgets()
负责执行所有findViewById
内容,populateWidgets()
基本上会使用正确的信息填充它们。
因此,当我需要重置信息时,我只需拨打populateWidgets()
。
Hacky way
我不知道这是否有效,但您可以尝试:
finish();
startActivity(new Intent(this, this.class));