android 中的抽屉 Activity 以及加载数据的位置?

Drawer Activity in android and where to load data?

我最近刚接触 Android 开发和一般片段的概念。在 ios 中,我能够使用 SWRevealController 创建 drawer menu 体验,让每个页面都保持原样 viewcontroller - 大致相当于 activity。这些单独的 viewcontrollers 非常清楚在哪里加载数据,并且在它们的生命周期中非常自我​​管理。

现在 android drawer activity 将菜单​​的每一页作为 fragment - 都属于同一个 activity。这让我有几个选择:

  1. 有一个 mega-activity 知道如何为每个可能的页面加载所有数据。这可能是最容易做到但最难维护的。
  2. 让每个片段知道如何load/display他们自己的数据。这看起来很理想,但如果在 onViewCreated 中完成,reloading/duplicating 数据会出现问题。此外,它使抽屉的初始加载 activity 非常慢,即使数据加载是以异步方式完成的。
  3. 对于每个都需要进行自己的 API 调用的许多抽屉视图,什么是易于维护的方法?

与 iOS 相比,android 中有很多生命周期方法。

您还可以为每个视图创建活动并扩展具有抽屉控件的 BaseActivity。所以这样你就可以在 base class 中获得抽屉控件,你也可以在其他活动中获得抽屉。

其次,如果您使用 Fragment 方式,您可以使用 setUserVisibilityHint() 或 onViewCreated() 方法进行调用 api,或者您也可以使用带有少量检查的 onResume() 方法。如需更多信息,请查看 this