我的代码位于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
没有&# 39;吨