首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最适合初始化/加载数据的Android分片方法

最适合初始化/加载数据的Android分片方法
EN

Stack Overflow用户
提问于 2014-05-22 17:40:27
回答 2查看 1K关注 0票数 4

我有一些数据要加载到Android片段中。我需要建立网络连接。我想知道开始加载数据最合适的方法是什么。应该是吗?

代码语言:javascript
复制
onCreateView()

代码语言:javascript
复制
onStart()

代码语言:javascript
复制
onResume()

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-05-22 17:43:35

IMO onCreate()是最合适的选择。因为如果片段转到后台并再次来到前台,则此回调不包括在生命周期中。只有在创建了片段时才会调用它。

在onCreateView和任何后续回调中,您必须确定何时调用网络。如果选择onCreate(),它将消失。

如果需要上下文,onAttach()是更好的选择。因为onAttach()将获取活动作为参数,并且类似于独立于前台/后台生命周期的onCreate()。

票数 3
EN

Stack Overflow用户

发布于 2014-05-22 17:59:15

我通常在onResume()中这样做。然后,我只需使用boolean来了解是否必须获取数据:

代码语言:javascript
复制
if (!dataFetched) {
    fetchData();
    dataFetched = true;
}

你可以预料到这一点,但你需要检查你的视图是否可访问。如果不是,则必须保留数据并在onViewCreated()中使用

代码语言:javascript
复制
onCreate() {   // or onActivityCreated() if you need Context
    fetchData();
}

onViewCreated() {
    if (data != null) {
        loadDataInViews();
    }
}

onNetworkResponseArrived(Data response) { // Method called by the network callback
    if(views != null) {
        loadDataInViews();
    }
    else {
        data = response;
    }
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23803095

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档