我写了一段代码,如果他们想要退出,会给用户提示他们再次按下.我目前我的代码工作到一定程度,但我知道它写得很差,我认为有更好的方法来做到这一点.任何的意见都将会有帮助!
码:
public void onBackPressed(){
backpress = (backpress + 1);
Toast.makeText(getApplicationContext(), " Press Back again to Exit ", Toast.LENGTH_SHORT).show();
if (backpress>1) {
this.finish();
}
}
Run Code Online (Sandbox Code Playgroud)
Ste*_*ice 203
我会实现一个对话框询问用户是否要退出,然后调用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();
}
Run Code Online (Sandbox Code Playgroud)
在上面的示例中,您需要将WelcomeActivity替换为您的活动名称.
A P*_*son 17
您不需要背压计数器.
只需存储对所显示的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();
}
}
Run Code Online (Sandbox Code Playgroud)
finish()如果您在吐司仍然可见的情况下按回,并且仅在后退将导致退出应用程序时,这将调用.
Sol*_*lot 14
我用这个更简单的方法......
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
}
}
}
Run Code Online (Sandbox Code Playgroud)