【发布时间】:2018-01-16 20:22:43
【问题描述】:
我尝试使用下面的代码来检查 Activity 的回调,据我了解,每当对话框出现在 Activity 之上时,应该调用 Activity 的 OnPause() 方法。当对话框消失时 Activity 的OnResume() 应该触发。
令人惊讶的是,它并没有按照应有的方式进行。我已经在 Android M 6.0.1 上进行了测试
如果我错了,请纠正我,这是我的代码,
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@Override
protected void onPause() {
Log.d("MainActivity", "onPause");
super.onPause();
}
@Override
protected void onResume() {
Log.d("MainActivity", "onResume");
super.onResume();
}
@Override
protected void onStart() {
super.onStart();
}
@Override
protected void onStop() {
super.onStop();
}
public void onClick(View view) {
AlertDialog.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder = new AlertDialog.Builder(MainActivity.this, android.R.style.Theme_Material_Dialog_Alert);
} else {
builder = new AlertDialog.Builder(MainActivity.this);
}
builder.setTitle("Delete entry")
.setMessage("Are you sure you want to delete this entry?")
.setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// continue with delete
}
})
.setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// do nothing
}
})
.setIcon(android.R.drawable.ic_dialog_alert)
.show();
}
}
【问题讨论】:
-
你根本没有使用你的
AlertDialog!在onCreate中使用.show()或onClick类。 -
你不会得到这样的回调,除非并且直到他们是带有对话框主题的活动。
标签: android android-activity android-alertdialog