I always get ResultCode = 0 with code below. 
This is my code for proccess setResult
  @Override
        public void onResponse(Call<ResponseBody> call, retrofit2.Response<ResponseBody> response) {
            Debug.i("Response Status Complete " + response.code());
            if (response.code() == 200) {
                Debug.i("Response Status Complete " + response);
                mSectionTopic.isComplete = 1;
                mSectionTopic.status = "completed";
                Intent intent = new Intent();
                intent.putExtra(Util.getIntentName("sectionTopic"), mSectionTopic);
                intent.putExtra(Util.getIntentName("challengeId"), "AIzaSyBkSGK9geQ4QbnvXcQQ_m2JScd7r89xnJs");
                intent.putExtra(Util.getIntentName("position"), mPosition);
                setResult(Activity.RESULT_OK, intent);
                finish();
            } else {
                showError(getString(R.string.text_post_question_failed));
            }
But if code onBackPressed(); resultcode works correctly.
What's problem with my code?
--
This is my onActivityResult()
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == REQ_CODE && resultCode == Activity.RESULT_OK) {
        if (data == null) return;
        int position = data.getIntExtra(Util.getIntentName("position"), 0);
        mAdapter.setComplete(position);
        mAdapter.notifyDataSetChanged();
    }
}