先给出结论: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体验一下。