我想知道,为什么 OnCreate()
在 Activity 开始时只被调用一次?
我们可以在同一 Activity 中多次调用 OnCreate()
吗?
如果是,那我们怎么调用它呢?谁能举个例子?
非常感谢!!!
最佳答案
为什么要再次调用它?除非 Activity 被重建,这是由系统调用的。您不能手动调用 OnCreate,这与您不会两次调用 setContentView() 的原因相同。作为文档:
onCreate(Bundle) is where you initialize your activity. Most importantly, here you will usually call setContentView(int) with a layout resource defining your UI, and using findViewById(int) to retrieve the widgets in that UI that you need to interact with programmatically. Once you finish init your widgets Why would you?
更新
我收回一些话,你可以手动执行此操作,但我仍然不明白为什么要调用它。你试过了吗Fragments ?
示例代码:
public class MainActivity extends Activity implements OnClickListener {
private Button btPost;
private Bundle state;
private int counter = 0;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
state = savedInstanceState;
btPost = (Button) findViewById(R.id.btPost);
btPost.setOnClickListener(this);
Toast.makeText(getBaseContext(), " " + counter, Toast.LENGTH_LONG)
.show();
}
@Override
public void onClick(View v) {
counter++;
this.onCreate(state);
}
}
关于android - 为什么 OnCreate 应该在 Activity 启动时只调用一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13964943/