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