Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/224.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android中的抽屉活动以及在何处加载数据?_Android_Android Fragments_Android Lifecycle - Fatal编程技术网

android中的抽屉活动以及在何处加载数据?

android中的抽屉活动以及在何处加载数据?,android,android-fragments,android-lifecycle,Android,Android Fragments,Android Lifecycle,我最近对安卓系统的开发和碎片的概念很陌生。在ios中,我能够使用创建一个抽屉菜单体验,使每个页面都成为自己的视图控制器——大致相当于一个活动。这些独立的viewcontrollers非常清楚在何处加载数据,并且在其生命周期中非常自我管理 现在在安卓系统中,一个抽屉活动将菜单的每一页都作为一个片段——所有这些都属于同一个活动。这给我留下了几个选择: 有一个大型活动,知道如何加载每个可能页面的所有数据。这可能是最容易做到但最难维护的 让每个片段知道如何加载/显示它们自己的数据。这似乎很理想,但如果在

我最近对安卓系统的开发和碎片的概念很陌生。在
ios
中,我能够使用创建一个
抽屉菜单
体验,使每个页面都成为自己的
视图控制器
——大致相当于一个
活动
。这些独立的
viewcontrollers
非常清楚在何处加载数据,并且在其生命周期中非常自我管理

现在在安卓系统中,一个
抽屉活动
将菜单的每一页都作为一个
片段
——所有这些都属于同一个
活动
。这给我留下了几个选择:

  • 有一个大型活动,知道如何加载每个可能页面的所有数据。这可能是最容易做到但最难维护的
  • 让每个片段知道如何加载/显示它们自己的数据。这似乎很理想,但如果在onViewCreated中执行,则会出现重新加载/复制数据的问题。此外,它使抽屉活动的初始加载非常缓慢,即使数据加载是以异步方式完成的
  • 对于每个抽屉视图都需要进行自己的API调用的许多抽屉视图,什么是一种易于维护的方法

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

    您还可以为每个视图创建活动,并扩展具有抽屉控制的BaseActivity。这样,在基类中就有了drawer控件,在其他活动中也会得到drawer


    其次,如果使用片段方式,则可以使用setUserVisibilityHint()或onViewCreated()方法来调用api,也可以使用onResume()方法进行少量检查。有关更多信息,请检查“是”,除此之外,还可以使用MVP模式来解耦视图和数据层。代码将清晰、可测试且易于维护。