如何在android中重启以前的活动?

时间:2013-07-18 02:41:16

标签: android android-activity

在我的Android应用程序中,我有一个显示个人资料信息的活动。然后它会打开一个新活动来更改活动。保存更改后,它会从编辑活动中关闭编辑活动,然后返回到配置文件显示活动,我需要重新启动此活动以刷新数据。

有没有办法可以重新启动打开当前活动的活动?

5 个答案:

答案 0 :(得分:4)

有三种方法可以达到你想要的效果:

  1. 通过致电startActivityForResult()启动个人资料活动,并在onActivityResult()
  2. 中刷新您的数据
  3. Finish()启动个人资料活动时的活动,然后覆盖个人资料活动中的onBackPress()以启动上一个活动,然后致电finish()
  4. 在配置文件活动中覆盖onBackPress()以使用标记Intent.FLAG_ACTIVITY_CLEAR_TOP启动上一个活动,并在onNewIntent()
  5. 中刷新您的数据

答案 1 :(得分:1)

Use Android Activity Result Pattern that communticates parent and child activities:

In your profile activity (parent):

  @Override
  public void onClick(View v) {

    startActivityForResult(
      new Intent(this, NameActivity.class), 
      1); // 1 to identify caller activity.
  }


  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {

    if (resultCode == RESULT_OK) {
      updateProfile();
    }
  }

In your editor activity (child):

  @Override
  public void onClick(View v) {

    setResult(
      RESULT_OK);

    finish();
  }

答案 2 :(得分:0)

你不必重启"重启"活动A.

您可以致电startActivityForResult(Intent, int)开始新的活动,然后通过onActivityResult(int, int, Intent)电话接收额外内容。

http://developer.android.com/reference/android/app/Activity.html#StartingActivities

或者,查看onResume()方法,每当您的屏幕可见时调用该方法。假设您在活动B中保留了某些状态(例如,SharedPreference或数据库记录),则在onResume()中可以刷新活动A.

答案 3 :(得分:0)

活动展示;

活动修改;

当您在活动D中启动活动M时,请不要D.finish(); 然后,当你使用M.finish()时,你不需要“重启”活动D,因为它已经存在了。

“刷新数据”有两种选择:

1.startActivityForResult正如他们所说。我不再解释了。

2.制作缓存。 将数据保存在一些静态变量或sqlite甚至sharedPreference中。然后在Activity D的onResume()中,获取这些数据并显示它们。

答案 4 :(得分:0)

试试这个:如果A正在呼叫B,当B结束时你需要更新A,然后在A发射B中使用startActivityForResult()。当B返回时,将调用A的方法onActivityResult()。在此方法(A)中,您可以根据需要测试某些存储值是否已更改。此时你会做类似的事情:

finish();
startActivity(intent); //start the activity A