網絡連接我已經解決了現在這Android的:如何處理這樣的Play商店應用
我要處理的網絡連接,如Play商店應用。
我創建了一個網頁視圖,並希望加載URL說www.bing.com
如果網絡連接可用然後 負載URL 否則巴頓 加載自定義URL。 結束
如果在按下該按鈕,我想嘗試並重新加載URL沒有連接?換句話說,我想在用戶連接後再次調用此活動。我怎麼做 ?
下面是我的代碼:
import android.net.ConnectivityManager; import android.net.NetworkInfo; import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.MenuItem; import android.webkit.WebView; import android.webkit.WebViewClient; import android.widget.Toast; import android.support.v4.app.NavUtils; import android.annotation.TargetApi; import android.content.Context; import android.os.Build; public class WebActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_web); if(isNetworkStatusAvailable (getApplicationContext())) { Toast.makeText(getApplicationContext(), "Loading...", Toast.LENGTH_SHORT).show(); WebView myWebView = (WebView) findViewById(R.id.webview); myWebView.loadUrl("http://www.bing.com"); myWebView.setWebViewClient(new WebViewClient() { @Override public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) { Toast.makeText(getApplicationContext(), "Internet Connection Unavailable Or " + description , Toast.LENGTH_LONG).show(); Intent errorIntent = new Intent(WebActivity.this, NetworkErrorActivity.class); startActivity(errorIntent); finish(); super.onReceivedError(view, errorCode, description, failingUrl); } }); } else { Toast.makeText(getApplicationContext(), "Internet Connection Unavailable.", Toast.LENGTH_LONG).show(); Intent errorIntent = new Intent(this, NetworkErrorActivity.class); startActivity(errorIntent); finish(); } // Show the Up button in the action bar. setupActionBar(); } public static boolean isNetworkStatusAvailable (Context context) { ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); if (connectivityManager != null) { NetworkInfo netInfos = connectivityManager.getActiveNetworkInfo(); if(netInfos != null) if(netInfos.isConnected()) return true; } return false; } }
只是說,我不認爲Android上的Play商店應用程序正在使用網絡視圖。對於你的問題,可能的方法是當網絡不可用時,用一些包含重試按鈕的其他視圖(如相對佈局)替換你的web視圖。 – kevin
我昨天在嘗試你的解決方案,但我無法用webview中的按鈕工作。 我現在已經用下面的方法解決了這個問題 - 我用其他代碼代替 意圖errorIntent = new Intent(this,NetworkErrorActivity.class); startActivity(errorIntent); 在我的新活動中,我通過按下一個按鈕再次呼叫我以前的活動。最後它的作品! – Gaga
「再次打電話給我以前的活動」是什麼意思?如果您試圖開始一項新活動而不是返回到之前的活動,那將會弄亂您的背部堆疊。 – kevin