在我的应用程序中,我想在按下后退按钮时退出应用程序,这是我的代码:
@Override
public void onBackPressed() {
new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
.setMessage("Are you sure you want to exit?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
finish();
}
}).setNegativeButton("No", null).show();
}
它工作正常,但当我退出应用程序时,它不会完全退出,并显示带有我的应用程序徽标的空白页面,当我再次按下后退按钮退出应用程序,我如何修复它???
编辑:
我使用这个代码而不是上面的代码,但我的应用程序完全退出,但我希望它在后台运行并且不完全退出,我该怎么做?
@Override
public void onBackPressed() {
new AlertDialog.Builder(this).setIcon(android.R.drawable.ic_dialog_alert).setTitle("Exit")
.setMessage("Are you sure?")
.setPositiveButton("yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
finish();
}
}).setNegativeButton("no", null).show();
}
我遇到了同样的问题,我有一个LoginActivity和一个MainActivity。如果我单击 MainActivity 中的后退按钮,应用程序必须关闭。所以我用OnBackPressed方法做了。这个移动TaskToBack()的工作方式与Home Button相同。它使后退堆栈保持原样。
public void onBackPressed() {
// super.onBackPressed();
moveTaskToBack(true);
}
试试这个:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//***Change Here***
startActivity(intent);
finish();
System.exit(0);
当您按下后退键,然后完成当前活动(如A)时,您会看到一个带有应用程序徽标的空白活动(如B),这意味着在完成A后显示的活动B仍处于后退状态,并且活动A是从活动B开始的,因此在活动中,您应该使用以下标志启动活动A:
Intent launchNextActivity;
launchNextActivity = new Intent(B.class, A.class);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
launchNextActivity.addFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION);
startActivity(launchNextActivity);
现在,您的活动A位于堆栈顶部,而应用程序的其他活动则不在堆栈上。
现在,在要实现 onBackPressed 以关闭应用的活动 A 中,您可以执行如下操作:
private Boolean exit = false;
@Override
public void onBackPressed() {
if (exit) {
finish(); // finish activity
} else {
Toast.makeText(this, "Press Back again to Exit.",
Toast.LENGTH_SHORT).show();
exit = true;
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
exit = false;
}
}, 3 * 1000);
}
}
这里的处理程序处理意外的回压,它只是显示一个Toast
,如果在3秒内有另一个回压,它会关闭应用程序。
按下后退按钮,我试图从活动中退出应用程序。但问题是在按下返回键后,刷新相同的活动2到3次,进入登录活动,不退出应用程序。有人可以帮助解决这个问题。 以下是我必须尝试退出应用程序的方式。
我正在开发一个需要
问题内容: 我有一个包含几个用户可编辑项(EditText字段,RatingBar等)的活动。我想提示用户是否按下了后退/主页按钮,并且所做的更改尚未保存。阅读完android文档后,似乎这段代码应该放在onPause方法中。我尝试将AlertDialog放在onPause中,但是显示对话框然后立即将其删除,因为没有任何内容可以阻止暂停完成。 到目前为止,这是我想出的: 我是在正确的轨道上吗,还是
我正在开发Windows Phone8.1 RT应用程序。 场景: 对此有什么解决办法?
09-08 07:58:32.915 137 26-13726/com.ruthadeaton.bld3.calculator e/androidruntime:致命异常:main process:com.ruthadeaton.bld3.calculator.calculator,PID:13726 java.lang.numberformatexception:empty string ats
我对libGDX有一个问题,当我用后退按钮退出后恢复应用程序时,只有一个白色屏幕。 实际应用运行,接受触摸输入,播放声音,但屏幕只是白色。 我读过保持对纹理的静态引用可能会导致这个问题,但我没有这样做。 下面是我的资产代码如何工作的简化版本。 在按下后退按钮后返回应用程序时,重新创建AssetManager,重新打开SplashScreen(为白色),并更新AssetManager直到重新加载所有