检测到Android中的活动已关闭

时间:2011-08-26 16:35:44

标签: android android-activity

在我的应用程序中,我需要启动SelectionActivity来选择其中一个选项。选择该选项后,我需要刷新MainActivity上的另一个列表。

这是我用来启动SelectionActivity的代码:

Intent intent = new Intent(MainActivity.this, SelectionActivity.class);
startActivity(intent);

在SelectionActivity中,这是接收所选选项并关闭活动的代码:

selectedValue = adapter.getItem(position);
finish();

现在应用程序回到MainActivity,但我不知道如何接收SelectionActivity已关闭的事件。

由于

7 个答案:

答案 0 :(得分:12)

显示使用startActivityForResult的快速代码段:

private static final int MY_REQUEST_CODE = 0xe110; // Or whatever number you want
// ensure it's unique compared to other activity request codes you use

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

    if (requestCode == MY_REQUEST_CODE)
        ActiviyFinishedNowDoSomethingAmazing();
}

public void onClickStartMyActivity(View view)
{
    startActivityForResult(new Intent(this, GameActivity.class), MY_REQUEST_CODE);
}

更多阅读getting a result from an activity

答案 1 :(得分:1)

根据应用程序的设计,每次返回Main活动时都可以通过观察onResume()或onRestart()事件来刷新列表。另外还有startActivityForResult()。所有这些方法都在Activity中。

答案 2 :(得分:1)

解决方案1:

  1. 使selectedValue成为静态公共变量。
  2. MainActivity

    void onResume() {
            result = SelectionActivity.selectedValue;
    }
    
  3. 解决方案2:

    如果SelectionActivity的工作只是多个选项的选择,请考虑使用Dialogs

答案 3 :(得分:0)

startActivityForResult(),然后覆盖onActivityResult()方法。有很多例子可以谷歌只使用关键词startactivityforresult。

答案 4 :(得分:0)

使用onActivityResult()或使selectedValue为静态。在MainActivity中使用onResume方法:

protected void onResume() {
    if(SelectionActivity.selectedValue != 0)
          newValue = SelectionActivity.selectedValue;
}

答案 5 :(得分:0)

答案 6 :(得分:0)

使用onDestroy

public void onDestroy() {
    super.onDestroy();

    Log.w("test", "active");
}