我想在我的应用程序进入后台之前,用户应该得到一个对话框,询问我是否要退出此应用程序。 如果用户选择否则我希望他应该再次恢复到我的应用程序,而不是启动另一个应用程序。 那么,它有可能在Android? 一种解决方案可以是这样的,我在 onpause()或 onstop()中调用 onresume()。但是可以这样做。 请帮帮我。
我的代码是这样的: -
public void onPause() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage("Do you want to quit");
builder.setCancelable(false);
builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
MytestprojectActivity.this.finish();
}
});
builder.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
super.onPause();
}
首先我基本上想看看它是否在调用onpause()时运行。 所以,我得到的是它暂停我的活动,去另一个活动,当我的活动重新启动时,它会显示对话框。我错过了什么。?
答案 0 :(得分:0)
这很简单:
public void onBackPressed() {
final Builder builder = new Builder(this);
builder.setTitle(R.string.caption);
builder.setMessage("Do you really want to exit?");
builder.setPositiveButton(android.R.string.ok, new OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
Intent intent = new Intent(YourActivity.this, YourActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);
YourActivity.this.finish();
dialog.dismiss();
}
});
builder.setNegativeButton(android.R.string.cancel,
new OnClickListener() {
@Override
public void onClick(final DialogInterface dialog,
final int which) {
dialog.dismiss();
}
});
final AlertDialog dialog = builder.create();
dialog.show();
}
这可以解决你的问题:)
更新:当你的应用程序在后台运行时,肯定会调用onPause()。因此,在onPause()内部编写此对话框,并在onClick上按下调用startActivity(),意图为Intent.FLAG_ACTIVITY_REORDER_TO_FRONT。