我有一个Android应用程序..我想要用户点击退出按钮,它会显示一条确认消息,如果他点击是,则关闭整个应用程序..
尝试了这段代码但没有用:
AlertDialog.Builder alertBuilder=new AlertDialog.Builder(AdminEditProfile.this);
alertBuilder.setTitle("Exit");
alertBuilder.setMessage("Are you sure you want to exit from the application?");
alertBuilder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
android.os.Process.killProcess(android.os.Process.myPid());
System.exit(1);
}
});
alertBuilder.setNegativeButton("No", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
alertBuilder.create().show();
有没有办法做>
请帮助,谢谢:)。
答案 0 :(得分:3)
你正在杀死你的进程,这是一个坏主意。 请看一下这篇文章,找出原因:
Why calling Process.killProcess(Process.myPid()) is a bad idea?
我建议你改用finish();
。
如果你想完成整个应用程序(取决于你需要什么)我建议你看看这篇文章:
答案 1 :(得分:2)
刚刚结束();可以做关闭活动的工作。是否有任何服务在后台运行?
答案 2 :(得分:1)
如果它是一个简单的应用程序,您可以调用finish()
并关闭所有已打开的活动。
也许你应该从你的应用程序注销用户?
答案 3 :(得分:-1)
我的示例代码试试这个
new AlertDialog.Builder(MainActivity.this)
.setTitle("Application Informaiton")
.setMessage("" )
.setPositiveButton("Got it", new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with delete
}
})
.setCancelable(false)
.show();
}
else if(item.getTitle().equals("Stop this Application"))
{
new AlertDialog.Builder(MainActivity.this)
.setTitle("Stop application?")
.setMessage("Stop this application and exit? You'll need to
re-launch the application to use it again.")
.setPositiveButton("Don't stop", new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with delete
}
})
.setNegativeButton("Stop and exit", new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with delete
MainActivity.this.finish();
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(Intent.CATEGORY_HOME);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
startActivity(intent);
}
})
.setCancelable(false)
.show();