正如我們所知道的應用程序運行時的內容提供者加載。但我想在內容提供商啓動之前做一些操作。我如何捕捉這個操作?以前內容提供商的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()
將是您的第一個機會,您必須運行代碼,在您的過程分叉後的瞬間。如果我理解正確,即使在Application
上調用onCreate()
之前也會發生這種情況。
它很傷心。我試圖覆蓋應用程序的onCreate,但似乎內容提供者也在應用程序的onCreate之前加載。謝謝你的答案。 – pleerock 2012-03-26 14:21:05
我的解決方案需要使用call(Uri, String, String, Bundle)
API(所以,它不是完全向後兼容)的。但是我有我想讓ContentProvider
準備好的東西,然後將其用於覆蓋該call
方法。然後我在我的Application.onCreate()
中做getContentResolver().call(BASE_URI, METHOD, null, Bundle.EMPTY)
。實質上,它將這些東西推遲到我的Application
正在創建之後,這正是我們期望ContentProvider
的onCreate
自然而然地做到的。
- 1. 角提供者$未初始化
- 2. 內容提供者
- 3. 嘗試捕捉對象初始化
- 4. 內容提供者如何工作?
- 5. 內容提供者vs ORM
- 6. 如何應對自我初始化之前關閉捕捉「
- 7. 如何捕捉異常在靜態初始化塊拋出
- 8. 如何預先實例化我的內容提供者?
- 9. 如何觀察內容提供者的變化?安卓
- 10. android內容提供者的使用者
- 11. 如何模擬視頻捕捉設備並提供動態視頻內容?
- 12. 光標初始化錯誤:列值始終在-1內容提供商
- 13. TestNG:爲所有方法初始化數據提供者一次
- 14. 如何在初始化後始終提供變量/常量?
- 15. 內容提供者和內容觀察者示例?
- 16. 內容提供者和內容觀察者同步
- 17. 如何解決在android內容提供者中找不到的內容提供者url?
- 18. 測試連接初始化提供
- 19. 如何提供storekit內容?
- 20. 如果db的內容提供者調用REST內容提供者,如果db沒有信息
- 21. Android - 內容提供者查詢光標
- 22. 動態註冊內容提供者
- 23. 內容提供者授予uri權限
- 24. eclipse中的樹內容提供者
- 25. android內容提供者權限
- 26. 內容提供者x正常Sqlite
- 27. 內容提供者更新所有行
- 28. 意圖vs內容提供者在android
- 29. 內容提供者不與SqliteDatabase同步
- 30. android videoView java.io.filenotfoundexception沒有內容提供者
目前可能有效,但我不知道它是否可以跨越各個版本。 – CommonsWare 2012-03-26 16:42:30
它在17 apis中倖存))也許在功能谷歌將爲我們提供此操作的任何apis,但現在它的作品。感謝您的回覆! – pleerock 2012-03-26 17:03:50
該解決方案有效,但它不完全正常工作。例如,Context.getMainLooper()方法在Application.onCreate()之前調用時返回null。 – Michael 2012-07-27 10:46:17