Android fragment onResume 与 onCreateView

标签 android android-layout android-fragments android-navigation

假设我正在 fragment 中创建和显示 GraphView 图形(有关代码的具体示例,请参见此处:Android/Java creating a helper class to create graphs),实际创建 GraphView 对象或 SensorManager 对象等对象的正确位置在哪里?

我看到有些人把这些项目(例如 sensorManager = (SensorManager) getContext().getSystemService(Context.SENSOR_SERVICE))放在 onResume 中,而其他人则把它在 onCreateView 中。它对 CPU/内存使用有很大影响吗?

我知道 onResumeonCreateView 在不同的时间被调用,但是假设我在 onResume 中创建了这些对象,我会结束吗每次用户导航到页面或按回页面时都会出现一系列相同的对象?还是 android 会覆盖现有对象,从而控制 RAM 使用情况?

或者将这些行放在 onCreateView 中会更好,这样当用户导航到页面时,设备不需要连续重新创建对象(我假设如果代码在 onResume)?

最佳答案

您的 UI 初始化应该在 fragment 中的 onCreateView 上完成。例如,初始化您的 GraphView。

onCreate 中初始化您想在暂停/恢复时保留状态的组件

关于Android fragment onResume 与 onCreateView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35712104/

相关文章:

android - 如何将页脚 View (TextView)添加到 ListView 的末尾?

android - 如何在 Spotify Android 应用程序中自动播放播放列表

android - 资源 ID 在 AGP 7.0 中将不是最终的

android - 为什么在 Activity 中注册 IabBroadcastReceiver 是个坏主意?

android - 管理 Android 布局,一定有更好的方法

android - 线性布局 :How to fill the whole width of screen?

java - 如何在选择菜单项后启用recyclerview OnItemClickListener?

java - com.example.main 无法转换为 android.support.v4.app.Fragment

java - 将 View 与现有视频合并

android - Activity 和 Fragment 两种场景都可以怎么选?