7

初歩的な質問ですみません。アプリのプロセスが開始されると Application クラスがインスタンス化されることを理解しています。また、電話機の起動が完了すると、ブート レシーバが呼び出されることも理解しています。私のアプリがBOOT_COMPLETEDインテントフィルターを保持していることをマニフェストを介して電話が知っているので、再起動プロセスは. 電話が再起動し、電話が BOOT_COMPLETED ですべてのプロセスを開始し、電話が BOOT_COMPLETED ブロードキャストを開始します。私の懸念は、アプリケーション クラスがインスタンス化される前にレシーバーが呼び出される場合、ブート レシーバー内でアプリケーション クラスのインスタンス変数を参照するかどうか疑問に思ったことです。

これが明らかである場合は、もう一度すみません。再起動の仕組みを完全には理解していません。

4

2 に答える 2

7

アプリケーションは常に、そのアクティビティ/サービス/レシーバーの前に開始されます。詳細については、次の 2 つのブログを参照してください。

【編集済】

しかし、@CommansWare のコメントによると:

ロギングに基づいて、アプリケーションのインスタンスの後に ContentProvider のインスタンスが作成されます。ただし、ContentProvider の onCreate() は、アプリケーションの onCreate() の前に呼び出されます。

そのため、プロバイダーの .xml 内で Application インスタンスを使用しようとするのはおそらく安全ではありませんonCreate()

于 2015-01-24T23:22:29.380 に答える