2017-08-05 49 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); 
}