Android:我可以在onpause()中调用我的onresume()。

时间:2012-05-30 11:52:02

标签: android

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

1 个答案:

答案 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。