无法在 android 中从 Dialog 关闭应用程序
Not able to close app from Dialog in android
我想在应用程序中添加一项功能。我想在单击退出按钮时关闭应用程序,但我的按钮在 Dialog 上,所以当我尝试使用 finish() 时,它不会执行相同的操作。我只想关闭 app.Please 帮助。
// 相同的代码
if (v.getId() == R.id.imgLogout) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getContext());
alertDialog.setMessage("Are you sure you want to exit?");
alertDialog.setPositiveButton("YES", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// session.logoutUser();
finish();
}
});
// 但完成在对话框中不起作用
首先关闭所有暂停Activity。比你可以关闭应用程序。你记住这个activity是最后一个
if (v.getId() == R.id.imgLogout) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getContext());
alertDialog.setMessage("Are you sure you want to exit?");
alertDialog.setPositiveButton("YES", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
// context.finish(); if use in fragment
}
});
首先在你的对话中class传递调用者活动的上下文说MainActivit.class上下文
现在先关闭对话框
//以避免 window 泄漏,因为破坏 activity 它的上下文也会消失。
dialog.dismiss();
然后
((Activity) context).finish();
关闭应用程序的一种非常简单的方法是:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
所以在你的情况下试试这个:
if (v.getId() == R.id.imgLogout) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getContext());
alertDialog.setMessage("Are you sure you want to exit?");
alertDialog.setPositiveButton("YES", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// session.logoutUser();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
});
我想在应用程序中添加一项功能。我想在单击退出按钮时关闭应用程序,但我的按钮在 Dialog 上,所以当我尝试使用 finish() 时,它不会执行相同的操作。我只想关闭 app.Please 帮助。
// 相同的代码
if (v.getId() == R.id.imgLogout) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getContext());
alertDialog.setMessage("Are you sure you want to exit?");
alertDialog.setPositiveButton("YES", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// session.logoutUser();
finish();
}
});
// 但完成在对话框中不起作用
首先关闭所有暂停Activity。比你可以关闭应用程序。你记住这个activity是最后一个
if (v.getId() == R.id.imgLogout) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getContext());
alertDialog.setMessage("Are you sure you want to exit?");
alertDialog.setPositiveButton("YES", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
finish();
// context.finish(); if use in fragment
}
});
首先在你的对话中class传递调用者活动的上下文说MainActivit.class上下文
现在先关闭对话框
//以避免 window 泄漏,因为破坏 activity 它的上下文也会消失。
dialog.dismiss();
然后
((Activity) context).finish();
关闭应用程序的一种非常简单的方法是:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
所以在你的情况下试试这个:
if (v.getId() == R.id.imgLogout) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(getContext());
alertDialog.setMessage("Are you sure you want to exit?");
alertDialog.setPositiveButton("YES", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// session.logoutUser();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
});