アプリケーションの実行時にコンテンツプロバイダが読み込まれることがわかっています。しかし、私はコンテンツプロバイダが立ち上げる前にいくつかの操作をしたいと思っています。どのようにこの操作をキャッチしますか?コンテンツプロバイダののonCreateメソッドがコンテンツプロバイダを初期化するにはどうすればよいですか?
答えて
解決策が見つかりました。アイブ氏は、私のカスタムアプリケーションクラスとオーバーライドさattachBaseContext方法
<application android:name=".ApplicationController" ...>
public class ApplicationController extends Application {
@Override
protected void attachBaseContext(Context base) {
super.attachBaseContext(base);
// some of your own operations before content provider will launch
}
}
と呼ばれることになる。しかし、私は、コンテンツプロバイダが起動されます前に、いくつかの操作をしたい前に...コンテンツプロバイダののonCreateメソッドは
私の知る限りで呼ばれることになる前に、それは不可能です。 ContentProvider
のonCreate()
がコードを実行する最初の機会になります。プロセスがフォークされた後の瞬間です。私が正しく理解するならば、onCreate()
がApplication
で呼び出される前でさえ、それが起こります。
非常に悲しいです。アプリケーションのonCreateをオーバーライドしようとしましたが、アプリケーションのonCreateの前にコンテンツプロバイダがロードされているようです。答えてくれてありがとう。 – pleerock
を作成した私のソリューションは、call(Uri, String, String, Bundle)
API(そう、それは完全な下位互換性はありません)を使用する必要があります。しかし、私はそのcall
メソッドのオーバーライドで使用される前に、ContentProvider
を準備する必要があるものを持っています。それから私はを私のApplication.onCreate()
に入れます。本質的には、Application
が作成されるまで、それは私たちがContentProvider
のonCreate
が自然にやっていると予想していたものになるまで、それを守ります。
- 1. 変数を初期化するにはどうすればよいですか?
- 2. IKImageViewを初期化するにはどうすればよいですか?
- 3. 一様な初期化はどのようにすればよいですか?
- 4. このようなマップをC++で初期化するにはどうすればよいでしょうか?
- 5. Connectミドルウェアで非同期初期化を使用するにはどうすればよいですか?
- 6. UINavigationControllerで表示されるカスタムビューを初期化するにはどうすればよいですか?
- 7. 初期化されていない値を避けるにはどうすればよいですか?
- 8. アプリケーションが初期化されるとすぐにダイアログを開くにはどうすればよいですか?
- 9. UIButtonから継承するこのカスタムクラスを初期化するにはどうすればよいですか?
- 10. 場所に基づいてGoogleマップを初期化するにはどうすればよいですか?
- 11. C++データ型を初期化できるクラスを作成するにはどうすればよいですか?
- 12. InputStreamでImageInputStreamをキャストまたは初期化するにはどうすればよいですか?
- 13. コンストラクタパラメータからテンプレートメンバ配列を初期化するにはどうすればよいですか?
- 14. LinkedListをエントリ/値で初期化するにはどうすればよいですか?
- 15. jqueryの入力クラスで配列を初期化するにはどうすればよいですか?
- 16. Objective-Cでウィンドウを初期化するにはどうすればよいですか?
- 17. OSGiバンドル内でJavassist ClassPoolを作成/初期化するにはどうすればよいですか?
- 18. ベクトル<bool>を値01で初期化するにはどうすればよいですか?
- 19. このクラスの他のメンバーデータでクラスメンバーデータを初期化するにはどうすればよいですか?
- 20. 起動時にスプリング統合:ゲートウェイを初期化するにはどうすればよいですか?
- 21. 選択イベントのトリガーなしにWPFコンテンツを初期化するにはどうすればよいですか?
- 22. ajaxリクエストの成功時にjquery関数を初期化するにはどうすればよいですか?
- 23. アプリケーションコンテキストの初期化イベントにフックを追加するにはどうすればよいですか?
- 24. スーパーフィッシュをページの投稿ごとに再初期化するにはどうすればよいですか?
- 25. ページの読み込み時に逆ジオコードを初期化するにはどうすればよいですか?
- 26. distanceFilterを500mに初期化するにはどうすればよいですか?
- 27. KotlinのMutableListを空のMutableListに初期化するにはどうすればよいですか?
- 28. 初期化関数のイベントリスナーにプロトタイプ関数を追加するにはどうすればよいですか?
- 29. 初期化されたオブジェクトを置き換えるにはどうすればよいですか?
- 30. MEFを使用してクラスのグループを初期化するにはどうすればよいですか?
これは現時点ではうまくいくかもしれませんが、バージョン間で信頼できるかどうかはわかりません。 – CommonsWare
17 apisで生き延びました))機能のGoogleではこの操作のためのAPIを提供しているかもしれませんが、現在は機能しています。返信ありがとうございます! – pleerock
このソリューションは機能しますが、完全に機能するわけではありません。たとえば、 'Context.getMainLooper()'メソッドは 'Application.onCreate()'の前に呼び出されると 'null'を返します。 – Michael