Firebase docsから、彼らは次のように述べています。
複数のプロセス
Crash Reporting は、クラッシュ情報をアップロードするための別のバックグラウンド プロセスを作成します。アプリが Android Application クラスを拡張する場合は、マルチプロセス セーフであることを確認する必要があります。そうしないと、同時実行の問題が発生する可能性があります。アプリが Application オブジェクトを拡張すると、このオブジェクトはマルチプロセス アプリのプロセスごとにインスタンス化されます。注意すべき重要な点は次の 2 つです。
このオブジェクトの実装がプロセス外の状態 (データベース、ファイル システム、共有設定など) にアクセスする場合、またはマルチプロセス環境にとって安全ではないその他のアクションを実行する場合、同時実行の問題が発生する可能性があります。これは、Application オブジェクトの複数のインスタンスが同時に実行される可能性があるためです。多くのサードパーティ ライブラリは、プロセス外の状態 (ローカル データベースなど) を保持し、Application オブジェクトから初期化された場合、同じ同時実行の問題の影響を受けます。アプリが上記の説明に適合し、アプリで Crash Reporting を使用する予定がある場合は、アプリケーション ロジックをコンテンツ プロバイダーまたは Android アクティビティに移動することを検討することを強くお勧めします。マルチプロセス環境で安全でないアプリケーション ロジックは、アプリに予期しない影響を与える可能性があります。
または他のインスタンスとのクラッシュを避けるために、クラス内に別のインスタンスがあるかどうかをApplication
クラスから確認するにはどうすればよいですか?Application
onCreate
Fabric