在ContentProvider的OnCreate中返回false是什麼用途?
通過通過Android源快速導航我發現,至於現在,真的不要緊,你回什麼,它只是被忽略,再次至於現在。
在測試和ActivityThread
,attachInfo
是newInstance
後立即調用,所以如果你看一下ContentProvider
源at line 1058就是onCreate
被稱爲,看起來像:
/**
* After being instantiated, this is called to tell the content provider
* about itself.
*
* @param context The context this provider is running in
* @param info Registered information about this content provider
*/
public void attachInfo(Context context, ProviderInfo info) {
/*
* We may be using AsyncTask from binder threads. Make it init here
* so its static handler is on the main thread.
*/
AsyncTask.init();
/*
* Only allow it to be set once, so after the content service gives
* this to us clients can't change it.
*/
if (mContext == null) {
mContext = context;
mMyUid = Process.myUid();
if (info != null) {
setReadPermission(info.readPermission);
setWritePermission(info.writePermission);
setPathPermissions(info.pathPermissions);
mExported = info.exported;
}
ContentProvider.this.onCreate();
}
}
請記住,如果文件是這麼說的,誰知道,也許這將在未來的版本中被使用/修復。
我應該如何辦理查詢後,失敗的onCreate?在查詢中再次運行onCreate?
我想,我的意思是根據onCreate
你的文件說的是,不一定onCreate
,但你自己的方法來初始化一次,並確保您的DatabaseHelper
左右,這將是你最大的努力應該推遲平凡的初始化(例如打開,升級和掃描數據庫)直到使用內容提供者
因此,從技術角度而言,你會按預期做,但它是野外的這裏很安全。
對不起,遲到接受,很好的答案! – Bear