我有一项活动,它是发件人。因此,当我在此活动中按下某个按钮时,会创建一个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
。我不知道为什么。
我希望有人可以帮助我! 谢谢!
答案 0 :(得分:0)
在第二个活动中使用onBackPressed,它的作品! 我不知道为什么不在onPause工作
@Override
public void onBackPressed()
{
Intent returnIntent = new Intent();
setResult(RESULT_OK, returnIntent);
finish();
super.onBackPressed();
}
答案 1 :(得分:0)
onPause方法它不是将结果返回给活动的好地方。尝试将其返回到另一个地方 - 在某些按钮操作或onBackPressed方法中。