Android:如何处理网络连接,如Play商店应用

时间:2014-03-25 07:00:46

标签: android webview

我现在已经解决了

我想像Play商店应用程序一样处理网络连接。

我创建了一个webview,想要加载一个URL,比如www.bing.com

如果网络连接可用则    加载网址 其他    使用Button加载自定义URL。 端

  1. 如果按下此按钮没有连接,我想尝试再次加载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;
    }
    
    }
    

1 个答案:

答案 0 :(得分:0)

你必须使用片段。 onCreate检查互联网连接,如果可用,请使用webview加载片段,然后使用按钮加载片段。在按钮OnClick再次检查互联网可用性,作为响应,您可以用webView替换片段。