我在onCreateOptionsMenu
创建了一个带有注销选项的Android应用程序。 Logout工作正常,但是当我再次按下后退按钮时,它会将我带到上一个活动,当它获得空值时,它会重定向到登录屏幕。现在我的登录屏幕一次又一次出现。当我按下后退按钮但我不知道如何完全关闭应用程序。
以下是我在登录屏幕中处理后退按钮的代码:
@Override
public void onBackPressed() {
new AlertDialog.Builder(this)
.setTitle("BidNEMO")
.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) {
Main.super.onBackPressed();
finish();
}
}).create().show();
}
请帮帮人..
答案 0 :(得分:50)
要点击按钮Quit Application
,请使用以下代码:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
试试..
要杀死完整的应用并将其从Running
应用列表中移除,请通过其pid
(令人讨厌的)杀死应用...在上面的代码之前使用这一行。
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
答案 1 :(得分:15)
如果您想完全关闭应用程序,则应使用finishAffinity();
代替finish()
。
它将清除以前由应用程序打开的所有活动堆栈。
答案 2 :(得分:5)
完成活动我正在使用此代码:
public void appExit () {
this.finish();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
} //close method
或使用此代码终止进程:
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
答案 3 :(得分:5)
对于Xamarin用户:
int pid = Android.OS.Process.MyPid();
Android.OS.Process.KillProcess(pid);
将其放入OnDestroy()
功能。
修改强>:
在彻底调查之后,我发现即使我写的上述代码也没有完全“杀死”该应用程序(从任务管理器中删除它 - “最近的应用程序”)。最后,在经过大量的代码试用后,我设法解决了一些问题,用这段代码覆盖了“Finish”函数:
public override void Finish()
{
if (Android.OS.Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
{
base.FinishAndRemoveTask();
}
else
{
base.Finish();
}
}
这是该问题的唯一解决方案!
答案 4 :(得分:4)
答案 5 :(得分:0)
即使看起来没问题,杀戮过程也会让你在将来头疼。 您可以通过以下用例来确保这一点:
OBSERVED :您的应用程序不会以不一致的方式打开主要活动。这是因为Android会考虑像崩溃一样杀死进程。
您可以在此处找到更多详细信息: Is quitting an application frowned upon?
答案 6 :(得分:0)
android.os.Process.killProcess(android.os.Process.myUid());
我认为这更好。 怎么样?