簡體   English   中英

如果沒有互聯網連接,則“重啟”應用

[英]“restart” app if no internet connection

我正在建立一個webview,如果沒有互聯網連接,它將加載本地錯誤html文件。 我在創建網絡視圖的MainActivity中使其工作。 但是我在從ourViewClient訪問Webview時遇到問題,該問題處理了webview內部發生的所有事情。 所以我不能使用browser.loadUrl("file:///android_asset/error.html"); 在那堂課里。 我嘗試使用Intent,但是當我沒有互聯網連接時,按網頁上的按鈕絕對不會發生任何事情。 是否有可能用一個命令替換意圖,該命令會重新啟動應用程序並從頭開始,以便它再次檢查MainActivity中的Internet連接? 我是初學者,所以請簡單說明

這是在ourViewClient中不起作用的意圖

if (CheckNetwork.isInternetAvailable(context)) {
    return false;
} else {
    Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("file:///android_asset/error.html"));
    context.startActivity(intent);
}

主要活動

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

    mClass = new ourViewClient(this);

    browser = (WebView) findViewById(R.id.wvwMain);

    browser.getSettings().setJavaScriptEnabled(true);
    browser.getSettings().setLoadWithOverviewMode(true);
    browser.getSettings().setUseWideViewPort(true);

    browser.setWebViewClient(new ourViewClient(this));
    if(CheckNetwork.isInternetAvailable(MainActivity.this)){
        browser.loadUrl("http://MyWebPage");
    } else {
        browser.loadUrl("file:///android_asset/error.html");
    }
}

您將必須運行一個計時器,該計時器將在一段時間后檢查Internet連接是否可用。

例:

Timer t = new Timer();
t.scheduleAtFixedRate(new TimerTask() {

    @Override
    public void run() {
        //Check internet connection here
    }

},
//Set how long before to start calling the TimerTask (in milliseconds)
0,
//check once every 10 seconds, you might want to do this less frequently as checking network  is a costly operation
10000);

並重新啟動活動,請執行以下操作。

if (Build.VERSION.SDK_INT >= 11) {
    recreate(); //This method is only available on Android version 11 and above
} else {
    Intent intent = getIntent();
    intent.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
    finish();
    overridePendingTransition(0, 0);
    startActivity(intent);
    overridePendingTransition(0, 0);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM