2013-01-07 47 views
6

我使用的機器人Application類作爲存儲臨時狀態和由其他(片段)的活性在應用共享的公共碼的地方考慮。何時使用和不使用android應用程序類?

我想獲得更多的反饋,它是否是一個好去處:

  1. 共享常量喜歡的ID,PREF鍵名稱等
  2. 全局變量(即制定者/吸氣)反映當前的UI狀態,導航,選定的片段,以及通常不需要保持的臨時數據。
  3. 當某些條件被觸發時用於保持數據的掛鉤。
  4. 在首選項更改後更新UI。
  5. 提供一種簡單的方法從任何地方訪問該應用的上下文中,包括代碼,其中getApplication()不可用,例如通過靜態吸氣劑如MyApp.getApp()
  6. 需要全局狀態變量的知名度,這將變得過於繁瑣搬開專用類常用的方法。

在活動課上還有什麼比較合適/有用/方便的?堅持下去並不是一個好主意,什麼纔是最好的選擇?最後,您發現應用程序最適合您的應用程序?

+1

在文章中列出了一大堆有益於其他用戶的好問題,從而展示出'-1'。 :) – ninetwozero

回答

2

共享常量喜歡的ID,PREF鍵名稱等

我通常創建一個名爲℃,這是一個常數文件,作爲其可讀性更好。 C.SHARED_PREFS更容易理解Application.SHARED_PREFS恕我直言。

全局變量(即設置器/吸氣劑)反映​​當前UI狀態, 導航,選擇片段,並且,在一般情況下,臨時的數據 並不需要被保留。

這將是在其中涉及活性或組分更好(例如,活動的UI狀態可能應該存儲在冰柱束,或活動的該實例中)。

掛鉤當某些條件被觸發保存數據。

這應該是罰款。

更新偏好的變化之後的UI。

再一次,我覺得在各自的組件中會更好。

提供一個簡單的方法可以從任何地方訪問上下文中應用, 包括代碼,其中getApplication()是不可用的,例如通過一個 靜態getter,如MyApp.getApp()。

這將工作,但要小心內存泄漏。通常應該在從Activity或Service或其他任何方法調用方法時將上下文作爲參數傳遞。內存泄漏的可能性較小。

需要全局狀態變量的知名度 並且會變得過於繁瑣搬往專用 類

常用的方法。

我覺得最好是專注於類,因爲當你的應用在特性和大小上增長時,這將變得很難維護。

+0

有關的「活動」實際上是一個ViewPager,它包含多個FragmentActivity頁面 - 因此需要保持狀態並允許片段之間的通信。在這種情況下使用事件恕我直言。 – ccpizza

2

它可能是某些地方,某些掛鉤可以連接。

例如,如果使用ACRA崩潰報告庫,則只需使用Application類,因爲這是附加ACRA的地方。這就迫使我開始使用這門課;我以前從來不需要那個。

相關問題