私のアプリケーションには多くのプロセスがあると仮定します。Application onCreate()
でいくつかの初期化コード(実際にはアプリケーションコンテキストを静的変数に格納する)を実行しようとしています。しかし、一部のプロセスでは、onCreate()が同じプロセス内の他のコードの前に実行されないため、キャッシュされたコンテキストにアクセスできないことがわかりました。
同じプロセス内のコードの前に実行する必要があるように、initコード(アプリケーションコンテキストを格納する)をどこに配置する必要がありますか?
1 に答える
1
チャットでの議論に基づくと、ヘルパークラスの静的初期化中にアプリケーションのコンテキストを取得しようとしているため、問題が発生します。私は次のことを提案しました:
ヘルパークラスがAndroidコンポーネントによってのみ使用されている場合、Androidコンポーネントがクラスを呼び出すまでに、Application.onCreate()が呼び出され、そこからコンテキストを取得できます。Androidコンポーネントから実際の呼び出しを取得してコンテキストを取得するまで待つ必要があります。
ヘルパークラスがインスタンス化されたらすぐにそれを実行しようとしないでください。必要なときにだけ実行してください。
于 2012-07-16T11:47:18.010 に答える