Как отследить задачу Firebase после перезапуска активности?
У меня есть код в Fragment
как следующее.
DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("amazing/spiderman");
Map<String, Object> updatesMap = new HashMap<>();
updatesMap.put("name", "Peter Parker");
updatesMap.put("girlFriend", "Mary Jane");
Task<Void> task = databaseReference.updateChildren(updatesMap);
task.addOnCompleteListener(getActivity(), new OnCompleteListener<Void>()
{
@Override
public void onComplete(@NonNull Task<Void> task)
{
if (task.isSuccessful())
{
// Do something awesome
}
else
{
// Handle error
}
}
});
Теперь, если ориентация устройства меняется сразу после запуска Task
, Task
разрушается (как и ожидалось) и OnCompleteListener
никогда не звонят. Таким образом, я понятия не имею, было ли задание выполнено успешно или не выполнено после Activity
перезапускается.
Предлагает ли команда Firebase наилучшую практику в этом случае? Мой поиск не нашел никаких конкретных предложений.
На мой взгляд, существует ряд возможных решений, в том числе использование Fragment
отслеживать состояние Task
, Какая версия addOnCompleteListener
я должен использовать, если я переместить Task
в сохранении Fragment
имея в виду, что Activity
разрушается, но Fragment
не делает?