在哪里初始化 timber 和 crashlytics
Where to initialize timber and crashlytics
我的应用执行很多后台任务,但活动很少,而且大部分工作都是在后台完成的。
假设我将 timber 和 Crashlytics 添加到我的应用程序中。我如何才能确保在设备上更新应用程序时,timber 和 Crashlytics 在没有打开 activity 的情况下得到初始化。
当您更新您的应用程序时,它总是会停止并重新启动 - 此时可以初始化 Timber 和 Crashlytics。
当您的应用程序启动时,将调用 android.app.Application
class 的方法 onCreate()
。要向此方法添加额外的逻辑,您需要创建新的 MyApplication class,它扩展 Application
class 并覆盖 onCreate()
方法。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//here initialize Timber and Crashlytics
}
}
默认情况下,android.app.Application
class 用于初始化应用程序上下文。应在 AndroidManifest.xml
文件中提供有关使用另一个 Application
class 的信息。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myname.app">
<application android:name="com.myname.MyApplication">
<activity android:name=".MyActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的应用执行很多后台任务,但活动很少,而且大部分工作都是在后台完成的。
假设我将 timber 和 Crashlytics 添加到我的应用程序中。我如何才能确保在设备上更新应用程序时,timber 和 Crashlytics 在没有打开 activity 的情况下得到初始化。
当您更新您的应用程序时,它总是会停止并重新启动 - 此时可以初始化 Timber 和 Crashlytics。
当您的应用程序启动时,将调用 android.app.Application
class 的方法 onCreate()
。要向此方法添加额外的逻辑,您需要创建新的 MyApplication class,它扩展 Application
class 并覆盖 onCreate()
方法。
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
//here initialize Timber and Crashlytics
}
}
默认情况下,android.app.Application
class 用于初始化应用程序上下文。应在 AndroidManifest.xml
文件中提供有关使用另一个 Application
class 的信息。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.myname.app">
<application android:name="com.myname.MyApplication">
<activity android:name=".MyActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>