setResult не возвращает ожидаемый результат при использовании с startActivityForResult - PullRequest
0 голосов
/ 15 декабря 2018

Код активности вызова:

Intent intent = new Intent(MainActivity.this, BuyActivity.class);
startActivityForResult(intent, BuyActivity.BUY_REQUEST_CODE);

Обработчик результата активности вызова:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        Log.d("billing","Got response from buy activity. resultCode = " + requestCode);
        if(requestCode== BUY_REUEST_CODE){
            boolean buyStatus= data.getBooleanExtra(BuyActivity.BUY_STATUS, false);
            if(buyStatus){
                Log.d(Constants.APP_TAG,"purchase was successful");
                enablePaidFeaturesIfRequired();
            }
            removeAdsIfRequired();
        }
    }

Код вызываемой активности:

Intent data = new Intent();
data.putExtra(BUY_STATUS, false);
Log.d(APP_TAG,"Setting buy activity result to " + RESULT_OK);
BuyActivity.this.setResult(RESULT_OK, data);
finish();

Я не получаю RESULT_OK в обработчике, даже когда я вижу, что следующее в журналах

 "Setting buy activity result to -1 ";

Скорее получаю результат как 1, который является RESULT_FIRST_USER,

1 Ответ

0 голосов
/ 15 декабря 2018

Попробуйте изменить if(requestCode== RESULT_OK){ на if(resultCode == RESULT_OK){

В журнале есть опечатка resultCode = " + requestCode.resultCode и requestCode различны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...