2014-03-25 4 views
0

같은 네트워크 연결을 처리하는 방법을 내가 본 지금안드로이드 : 플레이 스토어 앱

나는 플레이 스토어 앱과 같은 네트워크 연결을 처리하는 해결 된 것입니다. 네트워크 연결이 그런 그밖에 로드 URL 버튼을 로드 사용자 정의 URL을 사용할 수 있으면 나는 웹보기를 작성하고 URL을로드 할 한

는 www.bing.com

을 말한다. 내가 시도하고 URL을 다시로드하려면이 버튼을 누르면 아무런 연결이없는 경우

  1. 을 종료? 즉 사용자가 연결 한 후에 다시이 활동을 호출하려고합니다. 어떻게해야합니까? 당신은 조각을 사용해야합니다

    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; 
    } 
    
    } 
    
+0

그냥 말하면 안드로이드의 Play 스토어 앱이 웹보기를 사용하고 있다고 생각하지 않습니다. 귀하의 질문에 대한 가능한 방법은 네트워크를 사용할 수없는 경우 재시도 단추가 포함 된 다른보기 (상대 레이아웃과 같은)로 웹보기를 바꾸는 것입니다. – kevin

+0

어제부터 당신의 솔루션을 시도했지만 어떻게 든 웹뷰에서 버튼으로 작동하지 못했습니다. 이제 다음 방법을 사용하여이 문제를 해결했습니다. 나는 그 안의 코드를 으로 대체했습니다. intent errorIntent = new Intent (this, NetworkErrorActivity.class); startActivity (errorIntent); 새로운 활동에서 버튼을 눌러 이전 활동을 다시 호출합니다. 마침내 그것은 일한다!! – Gaga

+0

"이전 활동으로 다시 전화 걸기"란 무엇을 의미합니까? 이전 활동으로 돌아가는 대신 새로운 활동을 시작하려고하면 다시 스택이 엉망이됩니다. – kevin

답변

0

:

다음은 내 코드입니다. onCreate 인터넷 연결을 확인하고, 가능한 경우 webview를 사용하여 조각을로드합니다. in 버튼 OnClick 다시 인터넷 사용 가능성을 확인하십시오. 응답을 보내면 조각을 webView로 바꿀 수 있습니다.

+0

아직 조각을 사용하는 방법을 배우고 있지만 두 가지 조각 대신 현재 두 가지 작업을 사용하고 있기 때문에 솔루션이 완벽하게 작동한다고 생각합니다. 방금 버튼에 문제가있었습니다. 이제 제대로 작동합니다. 나는 조각들을 다음에 사용하려고 노력할 것이다. – Gaga

+0

이것을 해결할 수 있었습니까? 이걸 좀 밝힐 수 있니? 블로그 나 기사에 뭔가요? –

관련 문제