2010-11-09 59 views

回答

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()

哈克的方式

我不知道这是否会工作,但你可以尝试这样做:

  • finish();
  • startActivity(new Intent(this, this.class));
+0

@Thanks Macarse,你能告诉详细解答我的问题 – JohnNick 2010-11-09 11:45:45

+0

@JohnNick:刚刚编辑了我的答案。 – Macarse 2010-11-09 11:46:32

+0

@感谢Macarse – JohnNick 2010-11-09 12:28:58

相关问题