Java 使用片段、ViewPager、PullToRefresh进行应用程序设计

Java 使用片段、ViewPager、PullToRefresh进行应用程序设计,java,android,android-fragments,android-viewpager,Java,Android,Android Fragments,Android Viewpager,我现在正在开发主要活动扩展的Android应用程序(支持库)。此活动包含视图,该视图显示的是哪个适配器。确切地说,适配器是一个自定义子类,它扩展了FragmentStatePagerAdapter 适配器类具有getItem()方法来返回片段实例。我将这些片段存储在SparseArray中,以避免每次调用getItem()时都创建新片段。当活动被销毁时,我将清除此数组,因此我希望在重新创建活动时再次创建所有这些片段 有一个场景:用户启动应用程序,然后进入Android的主(启动器)屏幕,使用其他

我现在正在开发主要活动扩展的Android应用程序(支持库)。此活动包含视图,该视图显示的是哪个适配器。确切地说,适配器是一个自定义子类,它扩展了FragmentStatePagerAdapter

适配器类具有getItem()方法来返回片段实例。我将这些片段存储在SparseArray中,以避免每次调用getItem()时都创建新片段。当活动被销毁时,我将清除此数组,因此我希望在重新创建活动时再次创建所有这些片段

有一个场景:用户启动应用程序,然后进入Android的主(启动器)屏幕,使用其他应用程序,然后Android操作系统关闭我们的应用程序以释放内存。当用户返回到我们的应用程序时(它不是从一开始就重新启动,而是从用户打开它的位置重新创建和恢复),我会观察以下回调调用序列:

Application: onCreate() called
Fragment: onAttach() called
Fragment: onCreate() called
Activity: onCreate() called
Fragment: onViewCreated() called
Activity: onStart() called

有一个以上的片段(VelpPaGER调用GeTimeTo()用于当前的一个和两个它的邻居——下一个和以前的),但是我们认为只有一个片段可以简化它。 我过去认为应该比片段更早地调用activity的onCreate()。只有当应用程序从先前被操作系统杀死的后台状态恢复时,才会发生这种情况


我想在显示此活动中的任何内容(包括片段)之前执行一些后台操作,因此我不希望过早调用它们的onCreate()方法。在所描述的情况下,我如何才能做到这一点?

我发现最好使用callback来确保此时创建主机活动。因此,不需要在Fragment的方法中对UI做一些至关重要的事情。

何时检查和更新数据实际上取决于应用程序的实际功能。如果您的应用程序具有从远程源提取的动态数据,则您可能希望每隔15-30分钟更新数据。如果您的应用程序显示实时结果,您可能希望更频繁地进行投票。如果你的应用程序使用静态数据,那么你只需加载一次数据,再也不用检查。很难知道什么时候你应该检查数据,而不知道你的应用程序在做什么。好吧,让我们考虑这不是数据加载,而是在显示任何东西之前要执行的一般动作。最后我可能问错了问题,因为我很感兴趣为什么会这样?编辑了这个问题。