确认返回提示退出应用
Confirm back prompt to exit app
我目前正在开发一个应用程序,该应用程序大量使用 android 设备的后退按钮。我想知道如何检查 activity 是否是最后一个,如果用户再次按下,它不会退出应用程序,除非用户再次按下,就像 9gag 应用程序一样。
谢谢!
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Closing Activity")
.setMessage("Are you sure you want to close this activity?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setNegativeButton("No", null)
.show();
}
这里举例:
private boolean doubleBackToExitPressedOnce;
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
}
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, this.getResources().getString(R.string.exit_toast), Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce = false;
}
}, 2000);
}
DrawerLayout
块是可选的。
使用方法 Activity.isTaskRoot()
您可以检查用户是否会在按下后退按钮时退出应用程序。
然后您只需覆盖 onBackPressed()
以不同于平常的方式处理它。
这对 Backpressed 方法无效
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Closing Activity")
.setMessage("Are you sure you want to close this activity?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setNegativeButton("No", null)
.show();
}
我目前正在开发一个应用程序,该应用程序大量使用 android 设备的后退按钮。我想知道如何检查 activity 是否是最后一个,如果用户再次按下,它不会退出应用程序,除非用户再次按下,就像 9gag 应用程序一样。
谢谢!
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Closing Activity")
.setMessage("Are you sure you want to close this activity?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener()
{
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setNegativeButton("No", null)
.show();
}
这里举例:
private boolean doubleBackToExitPressedOnce;
@Override
public void onBackPressed() {
DrawerLayout drawer = (DrawerLayout) findViewById(R.id.drawer_layout);
if (drawer.isDrawerOpen(GravityCompat.START)) {
drawer.closeDrawer(GravityCompat.START);
}
if (doubleBackToExitPressedOnce) {
super.onBackPressed();
}
this.doubleBackToExitPressedOnce = true;
Toast.makeText(this, this.getResources().getString(R.string.exit_toast), Toast.LENGTH_SHORT).show();
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
doubleBackToExitPressedOnce = false;
}
}, 2000);
}
DrawerLayout
块是可选的。
使用方法 Activity.isTaskRoot()
您可以检查用户是否会在按下后退按钮时退出应用程序。
然后您只需覆盖 onBackPressed()
以不同于平常的方式处理它。
这对 Backpressed 方法无效
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setIcon(android.R.drawable.ic_dialog_alert)
.setTitle("Closing Activity")
.setMessage("Are you sure you want to close this activity?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
})
.setNegativeButton("No", null)
.show();
}