0

我希望在我的应用程序进入后台之前,用户应该得到一个对话框,询问我是否要退出这个应用程序。如果用户选择否,那么我希望他应该再次恢复到我的应用程序,而不是启动另一个应用程序。那么,在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() 时运行。所以,我得到的是它暂停了我的活动,转到另一个活动,当我的活动重新开始时,它会向我显示对话框。我错过了什么。?

4

1 回答 1

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。

于 2012-05-30T11:58:57.600 回答