当Dialog出现时 - 调用onPause()方法。 当Dialog是dimiss时 - 调用onResume()方法。
但是在我的下面的例子中它没有用。请查看下面的代码并清除我的困惑。
import android.app.Activity;
import android.app.Dialog;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class MainActivity extends Activity {
TextView txtName;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
txtName= (TextView) findViewById(R.id.txtName);
txtName.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
showCustomDialog();
}
});
}
public void showCustomDialog(){
// Create custom dialog object
final Dialog dialog = new Dialog(this);
// Include dialog.xml file
dialog.setContentView(R.layout.dialog);
// Set dialog title
dialog.setTitle("Custom Dialog");
// set values for custom dialog components - text, image and button
TextView text = (TextView) dialog.findViewById(R.id.textDialog);
text.setText("Custom dialog Android example.");
ImageView image = (ImageView) dialog.findViewById(R.id.imageDialog);
image.setImageResource(R.drawable.ic_launcher);
dialog.show();
Button declineButton = (Button) dialog.findViewById(R.id.declineButton);
// if decline button is clicked, close the custom dialog
declineButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Close dialog
dialog.dismiss();
}
});
}
@Override
protected void onResume() {
super.onResume();
Log.e("MainActivity","onResume");
}
@Override
protected void onPause() {
super.onPause();
Log.e("MainActivity","onPause");
}
出现对话框时,不会调用onPuase()。 当对话框解除时,不会调用onResume()。
答案 0 :(得分:0)
http://www.vogella.com/tutorials/AndroidLifeCycle/article.html
该对话框与活动的生命周期无关。当活动处于这些状态时,将调用onPause和onResume,而不是在对话框处于某个状态时。 例如,如果你在Activity进入onPause时放置了dialog.dismiss(),你会看到当你进入时,你的对话框将不再存在。