来自AsyncTask的Android startActivityForResult,带有上下文

时间:2015-09-05 08:42:46

标签: android android-asynctask

我有一项活动,它是发件人。因此,当我在此活动中按下某个按钮时,会创建一个AsyncTask,当我从服务器获得答案时,我只有发件人活动中的Context

发信人: 它从AsynTask开始。

AsyncTask(mContext是来自Sender类的上下文):

Intent i = new Intent();                    
i.setClass(mContext, SecondActivity.class);
Sender act = (Sender)mContext;
act.startActivityForResult(i,1);

在SecondActivity中:

@Override
public void onPause()
{
    super.onPause();
    Intent returnIntent = new Intent();
    returnIntent.putParcelableArrayListExtra("result", data);
    setResult(RESULT_OK, returnIntent);
    finish();
}

在发件人中,我尝试获得结果

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 1) {
        if(resultCode == RESULT_OK){
            ArrayList<MyClass> result = data.getParcelableArrayListExtra("result");
            addFriends(result);
        }
    }
}

requestCode等于0(当我用1开始时)和resultCode = 0。我不知道为什么。

我希望有人可以帮助我! 谢谢!

2 个答案:

答案 0 :(得分:0)

在第二个活动中使用onBackPressed,它的作品! 我不知道为什么不在onPause工作

@Override
    public void onBackPressed()
    {
        Intent returnIntent = new Intent();
        setResult(RESULT_OK, returnIntent);
        finish();
        super.onBackPressed();
    }

答案 1 :(得分:0)

onPause方法它不是将结果返回给活动的好地方。尝试将其返回到另一个地方 - 在某些按钮操作或onBackPressed方法中。