Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/207.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检测Android中的活动是否已关闭_Android_Android Activity - Fatal编程技术网

检测Android中的活动是否已关闭

检测Android中的活动是否已关闭,android,android-activity,Android,Android Activity,在我的应用程序中,我需要启动SelectionActivity来选择其中一个选项。选择该选项后,我需要刷新MainActivity上的另一个列表 这是我用来启动SelectionActivity的代码: Intent intent = new Intent(MainActivity.this, SelectionActivity.class); startActivity(intent); 在SelectionActivity中,这是接收所选选项并关闭活动的代码: selectedValue

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

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

Intent intent = new Intent(MainActivity.this, SelectionActivity.class);
startActivity(intent);
在SelectionActivity中,这是接收所选选项并关闭活动的代码:

selectedValue = adapter.getItem(position);
finish();
现在应用程序返回MainActivity,但我不知道如何接收SelectionActivity已关闭的事件

谢谢

startActivityForResult(),然后重写onActivityResult()方法。有很多例子可以在谷歌上搜索,只需使用关键词startactivityforresult。

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

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

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

查看解决方案1:

  • selectedValue
    设置为静态公共变量
  • 在您的
    main活动中

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


    如果<代码> SelectionActivity <代码>作业简单地从多个选项中选择,请考虑使用

    快捷代码,显示使用:


    更多阅读。

    使用
    onDestroy

    public void onDestroy() {
        super.onDestroy();
    
        Log.w("test", "active");
    }
    

    您选择0xe110是任意的吗?是的,它是任意的。理想情况下应该是一个常数-我会更新它来显示这一点!
    public void onDestroy() {
        super.onDestroy();
    
        Log.w("test", "active");
    }