2012-08-14 50 views
1

我對android開發的經驗很少,我用webview做了一個簡單的應用程序,我希望能夠在沒有網絡連接時提醒用戶。但是我不能讓警報對話框顯示出來。代碼編譯良好,沒有任何錯誤或警告。Android sdk:網絡檢查對話框永遠不會顯示

MainActivity.java

package dk.zerone.vuc; 

import android.net.ConnectivityManager; 
import android.net.NetworkInfo; 
import android.net.Uri; 
import android.os.Bundle; 
import android.app.Activity; 
import android.app.AlertDialog; 
import android.content.Context; 
import android.content.DialogInterface; 
import android.content.Intent; 
import android.view.Menu; 
import android.webkit.WebView; 
import android.webkit.WebViewClient; 

public class MainActivity extends Activity { 

    public final boolean networkCheck() { 
     ConnectivityManager connec = (ConnectivityManager)getSystemService(Context.CONNECTIVITY_SERVICE); 
    // ARE WE CONNECTED TO THE NET 
    if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTED || 
    connec.getNetworkInfo(0).getState() == NetworkInfo.State.CONNECTING || 
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTING || 
    connec.getNetworkInfo(1).getState() == NetworkInfo.State.CONNECTED) { 
     return true; 
    } else if (connec.getNetworkInfo(0).getState() == NetworkInfo.State.DISCONNECTED || connec.getNetworkInfo(1).getState() == NetworkInfo.State.DISCONNECTED ) { 
     return false; 
    } 
    return false; 
} 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    if(networkCheck()) { 

     // INTERNET IS AVAILABLE, DO STUFF.. 

     } else { 
      AlertDialog alertDialog = new AlertDialog.Builder(MainActivity.this).create(); 
      alertDialog.setTitle("Reset..."); 
      alertDialog.setMessage("R u sure?"); 

      alertDialog.setButton("OK", new DialogInterface.OnClickListener() { 
      public void onClick(DialogInterface dialog, int which) { 
      } }); 
      alertDialog.show(); 
     } 

    /* Splash screen */ 
    // ... 

    /* WebView */ 
    WebView webview = new WebView(this); 
    webview.setWebViewClient(new WebViewClient()); 

    setContentView(webview); 

    Uri uri = Uri.parse("http://mobil.vucfyn.dk/mobil"); 
    Intent intent = new Intent(Intent.ACTION_VIEW, uri); 
    startActivity(intent); 

} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.activity_main, menu); 
    return true; 
} 

} 

我在模擬器上測試代碼,禁用與F8或者飛行模式的網絡不觸發對話框或網絡檢查。

我在做什麼錯了?

親切的問候

+0

你禁用活動前的網絡啓動? – 2012-08-14 22:51:12

+0

是的,我啓用flightmode,並編譯應用程序。 – user1599309 2012-08-15 09:27:07

回答

0

一件事你是不是顯示你的活動在每個case.You用戶在OnCreate中正在啓動瀏覽器。 您並未使用WebView加載網址,而是使用預加載的瀏覽器來顯示您的網址。使用

webview.loadUrl("http://mobil.vucfyn.dk/mobil"); 

,而不是過去的3條線路在你的OnCreate功能

+0

感謝您的回答,但我不明白。 startActivity(意圖)是最後3行的一部分?,這將如何幫助觸發網絡檢查並顯示警報? – user1599309 2012-08-15 09:25:28

+0

活動在onresume之後顯示,但在此之前,您將活動與新活動重疊。顯示對話框的活動正在背景 – nandeesh 2012-08-15 09:29:20

+0

啊,我明白了,我該如何在webview上顯示對話框? – user1599309 2012-08-15 11:10:36