Проверить на 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;