如何在活动重启后跟踪Firebase任务?

时间:2017-09-13 08:55:47

标签: android android-fragments firebase firebase-realtime-database task

我的代码位于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;吨

0 个答案:

没有答案