2017-09-17 40 views
0

假設一個Android應用程序有多個入口點相關的任務:系統啓動活動,服務等執行處理啓動

而且假設我們需要執行一些任務時,應用程序(這意味着它的任何組件)以上述任何選項開始。把它放在一些背景下,假設我們需要初始化崩潰報告系統。

把代碼放在每一個antry點(Activity.onCreate()Service..onCreate())是首先想到的,但它看起來應該有一個更好的方法。

實施它的做法是什麼?

+0

請詳細解釋。如果你調用Activity.onCreate(),它是非常糟糕的 – redAllocator

回答

0

通常的方法是放置在Application.onCreate()該代碼是 當應用程序開始調用,任何活動,服務,或接收器對象(不包括內容提供者)之前已經創建。這就是Fabric/Crashlytics初始化了多少庫。

+0

謝謝。當我啓用Fabric Crashlytics時出現了這個問題。他們的Android Studio插件中的代碼示例實際上包含了「Activity.onCreate()」中的初始化代碼,而不是'Application.onCreate()'中更正確的代碼,這真是令人遺憾。 –

+0

可能的原因是沒有Application類,因此它選擇將其添加到啓動Activity。如果你已經有一個應用程序類,我想它會在那裏添加初始化代碼。 – Crispert

+0

我沒有使用自動安裝。我的意思是他們的指南根本沒有提到應用程序類中的設置。例如見[這裏](https://fabric.io/kits/android/crashlytics/install)。 –