我写了一段代码,将给用户一个提示,要求他们再次按回,如果他们想要退出。我目前的代码在一定程度上可以正常工作,但我知道它写得很差,我想有一种更好的方法来做到这一点。任何建议都会很有帮助!
代码:
public void onBackPressed(){
backpress = (backpress + 1);
Toast.makeText(getApplicationContext(), " Press Back again to Exit ", Toast.LENGTH_SHORT).show();
if (backpress>1) {
this.finish();
}
}
发布于 2011-06-20 23:33:48
我会实现一个对话框,询问用户是否要退出,如果想退出,则调用super.onBackPressed()
。
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setTitle("Really Exit?")
.setMessage("Are you sure you want to exit?")
.setNegativeButton(android.R.string.no, null)
.setPositiveButton(android.R.string.yes, new OnClickListener() {
public void onClick(DialogInterface arg0, int arg1) {
WelcomeActivity.super.onBackPressed();
}
}).create().show();
}
在上面的示例中,您需要将WelcomeActivity替换为活动的名称。
发布于 2013-03-31 19:37:40
你不需要一个反压力机的柜台。
只需存储对所显示的toast的引用:
private Toast backtoast;
然后,
public void onBackPressed() {
if(USER_IS_GOING_TO_EXIT) {
if(backtoast!=null&&backtoast.getView().getWindowToken()!=null) {
finish();
} else {
backtoast = Toast.makeText(this, "Press back to exit", Toast.LENGTH_SHORT);
backtoast.show();
}
} else {
//other stuff...
super.onBackPressed();
}
}
如果在吐司仍然可见时按back,并且仅当按back会导致退出应用程序时,这将调用finish()
。
发布于 2014-02-18 07:48:05
我使用这个简单得多的方法...
public class XYZ extends Activity {
private long backPressedTime = 0; // used by onBackPressed()
@Override
public void onBackPressed() { // to prevent irritating accidental logouts
long t = System.currentTimeMillis();
if (t - backPressedTime > 2000) { // 2 secs
backPressedTime = t;
Toast.makeText(this, "Press back again to logout",
Toast.LENGTH_SHORT).show();
} else { // this guy is serious
// clean up
super.onBackPressed(); // bye
}
}
}
https://stackoverflow.com/questions/6413700
复制相似问题