Проверить на resultCode в Android BroadcastReceiver?

Я хочу сделать чек, если resultCode RESULT_OK в методе Android BroadcastReceiver onReceive, как мы это делаем в onActivityResult методе Activity, но как я это сделаю, это мой вопрос.

Код получателя:

new BroadcastReceiver() {

            @Override
            public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub
                //This is what I like to check.
                //if(resultCode == RESULT_OK)
            }
        };

Ответ 1

Чтобы выполнить проверку resultCode в методе BroadcastReceiver onReceive (...), мы можем использовать метод getResultCode() BroadcastReceiver.

Это даст нам текущий resultCode (который может быть стандартным результатом

  • RESULT_CANCELED
  • RESULT_OK

или любые пользовательские значения, начинающиеся с RESULT_FIRST_USER).

Для вышеупомянутого вопроса его реализация задается как:

new BroadcastReceiver() {

            @Override
            public void onReceive(Context context, Intent intent) {
                // TODO Auto-generated method stub
                //This is what I like to check.
                if(getResultCode() == Activity.RESULT_OK)
                {
                     //Your code here.
                }
            }
        };

Ответ 2

Вы можете использовать следующий код

if (getResultCode() == Activity.RESULT_OK ) {
 ...
}

Ответ 3

по умолчанию вы не можете переопределить метод onactivityResult в широковещательном приемнике, но вы можете сделать это следующим образом:

  • переопределить onactivityResult метод в любом подклассе activity
  • сохранение результата в sharedpreference
  • доступ к этому значению из метода onreceive трансляции с использованием контекст

или инициализировать этот тип глобальной переменной. и после сравнения с ним.

private int resultCancel = Activity.RESULT_CANCELED;
private int resultOk = Activity.RESULT_OK;