Bre*_*ett 16 android back-button back-button-control close-application
我创建了一个带有注销选项的android应用程序onCreateOptionsMenu.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();
}
Run Code Online (Sandbox Code Playgroud)
请帮帮你..
ryd*_*rz8 53
要Quit Application在按钮上单击使用此代码:
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
startActivity(intent);
Run Code Online (Sandbox Code Playgroud)
试试吧..
要杀死完整的应用程序并将其从Running应用程序列表中删除通过其pid(令人讨厌的)杀死应用程序...在上面的代码之前使用这一行.
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
Run Code Online (Sandbox Code Playgroud)
sAc*_*re. 15
如果你想完全关闭应用程序,你应该使用finishAffinity();而不是finish() .它将清除以前由应用程序打开的所有活动堆栈.
对于Xamarin用户:
int pid = Android.OS.Process.MyPid();
Android.OS.Process.KillProcess(pid);
Run Code Online (Sandbox Code Playgroud)
把它放在你的OnDestroy()功能中.
编辑:
在彻底调查之后,我发现即使我写的上述代码也没有完全"杀死"该应用程序(从任务管理器中删除它 - "最近的应用程序").最后,经过大量的代码试用后,我设法解决了一些问题,用这段代码覆盖了"Finish"函数:
public override void Finish()
{
if (Android.OS.Build.VERSION.SdkInt >= BuildVersionCodes.Lollipop)
{
base.FinishAndRemoveTask();
}
else
{
base.Finish();
}
}
Run Code Online (Sandbox Code Playgroud)
这是该问题的唯一解决方案!
完成活动我正在使用此代码:
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
Run Code Online (Sandbox Code Playgroud)
或使用此代码终止进程:
int pid = android.os.Process.myPid();
android.os.Process.killProcess(pid);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
32382 次 |
| 最近记录: |