1

每次打开 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);
}
4

3 回答 3

2

你应该看看这个:http: //developer.android.com/training/basics/activity-lifecycle/pausing.html

基本上,每个活动都有除“onCreate”之外的更多事件,例如“onResume”,在这种情况下,应该在 MainActivity 回到前台时调用它,并且您应该将代码放在那里。

于 2013-04-07T16:49:50.110 回答
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);
}
于 2013-04-07T16:50:11.600 回答
0

假设您在主 Activity A 中有一个 Textview,并且您正在使用

Textview myTextview =(Textview)findViewbyId(R.id.textview1);
myTextView.setText("Android");

您正在从活动 A 导航到活动 B。当活动 B 完成时,将调用活动 A 的 onResume() 方法。所以在 onResume() 中更新 textview 如下

onResume(){
myTextview.setText("Jelly Bean")};

因此,当您返回屏幕时要更新的任何视图都可以在该活动的 onResume() 方法上执行。希望清楚

于 2013-04-07T17:20:05.540 回答