Android DevArt2:Android 5.0下 Dialog&AlertDialog 并不会影响Activity的生命周期

先给出结论:Dialog和AlertDialog并不会影响到Activity的生命周期,但会影响到Activity的优先级。

核心代码:

onCreated中:
        Resources resources = this.getResources();
        DisplayMetrics displayMetrics = resources.getDisplayMetrics();
        final int widthPixels = displayMetrics.widthPixels / 2;
        final int heightPixels = displayMetrics.heightPixels / 2;
        //1
        //Android 5.0下 Dialog&AlertDialog 并不会影响Activity的生命周期
        FloatingActionButton fab = (FloatingActionButton) findViewById(R.id.fab);
        fab.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
//                Snackbar.make(view, "Replace with your own action", Snackbar.LENGTH_LONG)
//                        .setAction("Action", null).show();
                //test Dialog
//                EditText editText = new EditText(ScrollingActivity.this);
//                editText.setLayoutParams(new ViewGroup.LayoutParams(widthPixels, heightPixels));
//                Dialog dialog = new Dialog(ScrollingActivity.this);
//                dialog.setContentView(editText);
//                dialog.setTitle("标题");
//                dialog.setCanceledOnTouchOutside(false);
//                dialog.show();
                //test Dialog
                AlertDialog.Builder builder = new AlertDialog.Builder(ScrollingActivity.this);
                builder.setTitle("弹窗")
                        .setMessage("Msg")
                        .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                dialog.dismiss();
                            }
                        }).setPositiveButton("Yes", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                        ;
                    }
                }).setCancelable(false);
                builder.create().show();
            }
        });

In Activity:
 @Override
    protected void onStart() {
        super.onStart();
        System.out.println("ScrollingActivity.onStart");
    }

    @Override
    protected void onResume() {
        super.onResume();
        System.out.println("ScrollingActivity.onResume");
    }

    @Override
    protected void onPause() {
        super.onPause();
        System.out.println("ScrollingActivity.onPause");
    }

    @Override
    protected void onStop() {
        super.onStop();
        System.out.println("ScrollingActivity.onStop");
    }

有兴趣的同志可以新建个Activity体验一下。

posted @ 2018-04-01 11:27  javakam  阅读(1521)  评论(0编辑  收藏  举报