Android 当用户做出选择时调用onResult

Android 当用户做出选择时调用onResult,android,checkbox,android-listview,start-activity,Android,Checkbox,Android Listview,Start Activity,我有一个列表视图,其中包含一些可检查的选项。我想用startActivityForResult启动此活动,当用户返回初始活动时,此活动将开始创建已选择的类别,并将其ID存储在列表中。问题是我应该在哪里调用onResult方法。我的第一个想法是这样说: @Override protected void onPause() { super.onPause(); if(isFinishing()){ onResult()....call here }

我有一个列表视图,其中包含一些可检查的选项。我想用
startActivityForResult
启动此活动,当用户返回初始活动时,此活动将开始创建已选择的类别,并将其ID存储在列表中。问题是我应该在哪里调用
onResult
方法。我的第一个想法是这样说:

@Override
protected void onPause() {
    super.onPause();
    if(isFinishing()){
      onResult()....call here       
    }
}
但是,正如我所知,
isFinishing()
并不是确保活动正在完成的最佳方法,我们无法确定何时调用它。当用户检查完其类别后,是否有更好的方法返回结果?我的意思是,我不能每次用户进行选择时都发送
onResult

在选择过程中调用
setResult(int-resultCode,intent-data)
,并在上一个活动中覆盖onActivityResult

public void onActivityResult(int requestCode, int resultCode, Intent intent) {

  //do something here.

}

我希望这能帮助你……:)

当您想要识别活动的结果时,您不必调用
onResult()
,而是在用户进行选择时使用
setResult
,当您的活动完成时,最后一次设置的结果将传播回启动活动以获取结果的活动

代码应该如下所示:

onItemSelected(){ // or onClick
     getItem();
     setResult();
}

如果我将setResult放在Activity的finish方法中会更好吗?如果您跟踪您的选择,您可以这样做,但请记住,android并不能确保回调所有生命周期方法。。。因此,在某些情况下,onPause可能无法执行。你是说onFinish在你说的onPause的地方吗?没有onFinish方法,我说的是完成回调(onPause、onStop、onDestroy)