2010-11-09 72 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

相關問題