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