每次打开MainActivity时,如何调用onCreate?
我想这样做: 我打开我的应用程序,这是我的MainActivity,然后我打开ActivityB并保存一些数据。当我关闭ActivityB时,我将回到MainActivity,但是我的MainActivity中的数据没有更新,因为没有调用onCreate。
这样解决它是否正确(这是有效的,但我知道这不是一个好方法):
转到ActivityB的按钮:
public void ActivityB(View view){
Intent intent = new Intent(this, ActivityB.class);
startActivity(intent);
finish();
}
返回MainActivity的按钮:
public void Back(View view){
finish();
Intent intent = new Intent(this, MainActivity.class);
startActivity(intent);
}
答案 0 :(得分:2)
你应该看看这个: http://developer.android.com/training/basics/activity-lifecycle/pausing.html
基本上,每个活动都有除“onCreate”以外的更多事件,比如“onResume”,在这种情况下应该在MainActivity回到前台时调用,你应该将代码放在那里。
答案 1 :(得分:0)
使用startActivityForResult
public void ActivityB(View view){
Intent intent = new Intent(this, ActivityB.class);
startActivityForResult(intent, 1);
}
然后在onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent)
{
super.onActivityResult(requestCode, resultCode, intent);
String sp = intent.getStringExtra("sp");
}
活动B中的
@Override
public void onBackPressed()
{
Intent i = new Intent();
i.putExtra("sp", value); // the change value of sp
setResult(RESULT_OK);
}
答案 2 :(得分:0)
假设您在主要活动A中有一个Textview,并且您正在使用
设置文本Textview myTextview =(Textview)findViewbyId(R.id.textview1);
myTextView.setText("Android");
您正在从活动A导航到活动B.当活动B完成onResume()时,将调用活动A的方法。因此,请在onResume()
中更新textview,如下所示onResume(){
myTextview.setText("Jelly Bean")};
因此,当您返回到屏幕时要更新的任何视图都会在该活动的onResume()方法上执行此操作。希望很清楚