2017-08-05 46 views
0

我正在使用WebView來查看我的離線網頁,其中包含幾個名爲1.html,2.html等主頁面的html頁面index.html 。它只有一個Mainactivity,現在我使用下面的代碼在按兩次時退出應用程序。如果按下一次,我想添加功能返回上一頁,按兩次退出應用程序。 下面是代碼,現在該退出應用程序,如果按兩次攔截返回按鈕返回到webView中,如果按下一次,按兩次退出

boolean doubleBackToExitPressedOnce = false; 

@Override 
public void onBackPressed() { 
if (doubleBackToExitPressedOnce) { 
super.onBackPressed(); 
return; 
} 

this.doubleBackToExitPressedOnce = true; 
Toast.makeText(this, "Please click BACK again to exit", 
Toast.LENGTH_SHORT).show(); 

new Handler().postDelayed(new Runnable() { 

@Override 
public void run() { 
    doubleBackToExitPressedOnce=false;      
} 
}, 2000); 
} 

任何幫助將非常感激。

回答

0

我不太確定它是一個好的模式,因爲它會讓用戶感到困惑,如果你想雙擊退出活動,單擊返回到上一頁,你應該考慮添加一個返回按鈕來活動標題,用戶將擁有專用的後退按鈕。儘管如此,雖然,你可以在這種情況下,做的是去到前一頁一次如下圖所示

@Override 
public void onBackPressed() { 
    if (doubleBackToExitPressedOnce) { 
     //super.onBackPressed(); use finish instead to close activity 
     finish(); 
     return; 
    } 
    this.doubleBackToExitPressedOnce = true; 
    Toast.makeText(this, "Please click BACK again to exit",Toast.LENGTH_SHORT).show(); 
    goBack(); 

    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      doubleBackToExitPressedOnce=false;      
     } 
    }, 2000); 
} 

public void goBack(){ 
    if (mWebView.canGoBack()) { 
     mWebView.goBack(); 
    } else { 
     finish(); 
    } 
} 

希望它可以幫助超時已過期,古德勒克

+0

都能跟得上它沒有爲工作了我,當按兩次它什麼也不做,並顯示Plese再次點擊返回退出,當按兩次將退出應用程序。但是如果按下一次,我想轉到上一頁。 –

+0

我做了更正,它應該現在工作。正如Ive先前所說,如果有後退按鈕,會更好,因此您不會在用戶返回webview並完成活動之間混淆用戶 – shegzy

0
boolean isDouble = false; 
private int DURATION = 1000; 

@Override 
public void onBackPressed() { 
    if (isDouble) { 
     finishAndRemoveTask(); 
     return; 
    } 

    isDouble = true; 
    finish(); 

    new Handler().postDelayed(new Runnable() { 
     @Override 
     public void run() { 
      isDouble=false;      
     } 
    }, DURATION); 
}