1

可以说我正在一个片段中创建并显示一个GraphView图形(有关代码的特定示例,请参见:Android/Java creating a helper class to create graphs),其中是实际创建对象的正确位置,如GraphView对象,或SensorManager对象?Android片段onResume与onCreateView

我见过有些人把这些物品(例如sensorManager = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE))放在onResume,其他人放在onCreateView。它对CPU/RAM的使用有很大的影响吗?

我明白onResumeonCreateView在不同的时间被调用,但可以说我创造onResume这些对象,将我只是每次用户浏览页面,或按时间结束了一个全系列同一对象的回到页面?或者android覆盖现有的对象,因此保持内存使用情况?

或者将这些行放在onCreateView这样最好,因此当用户导航到页面时设备不需要不断重新创建对象(假设代码在onResume中,则会发生这种情况)?

+0

无论你在哪里把代码的事情,它总是会被调用。 'onResume'发生在'onCreateView'后面 –

+0

但看着片段生命周期(https://developer.xamarin.com/guides/android/platform_features/fragments/part_1_-_creating_a_fragment/Images/fragment_lifecycle.png),它看起来像'onCreateView'只会在视图被破坏后才会调用(例如,如果我关闭了应用程序)。而'onResume'会在暂停/停止事件后被调用(例如,如果我按回家并使用另一个应用程序一段时间,然后返回,或者如果我导航到另一个片段然后按回按钮) – Simon

+0

我在看官方android片段生命周期,而不是Xamarin –

回答

1

您的UI初始化应该在onCreateView的片段中完成。例如初始化GraphView。谁是你要保留在暂停状态

初始化组件/恢复内部onCreate

+0

因此,像传感器管理器,不是UI,会进入onResume并每次有人支持/导航到片段时被调用? – Simon

+0

请检查编辑的答案。希望它有帮助 – geekoraul

+0

您是否使用'onActivityCreated'和'onCreateView'有什么区别?看起来很奇怪的是,android有一种方法可以将片段附加到父活动以及创建视图的方法,而无需附加... – Simon