contentprovider既可以與呼叫方處在同一程序,也可以執行在單獨程序中,完全取決於contentprovider所處的aplication的程序資訊。因此假如contentprovider執行在單獨的程序中,那麼呼叫contentprovider將會涉及到ipc通訊。既然涉及到ipc通訊,那麼contentprovider一定繼承自iinte***ce,這個iinte***ce就是icontentprovider,其主要的介面方法如下,
view plain
print?
public ibulkcursor bulkquery(uri url, string projection,
string selection, string selectionargs, string sortorder, icontentobserver observer,
cursorwindow window) throws remoteexception;
public cursor query(uri url, string projection, string selection,
string selectionargs, string sortorder) throws remoteexception;
public string gettype(uri url) throws remoteexception;
public uri insert(uri url, contentvalues initialvalues)
throws remoteexception;
public
int bulkinsert(uri url, contentvalues initialvalues) throws remoteexception;
public
int delete(uri url, string selection, string selectionargs)
throws remoteexception;
public
int update(uri url, contentvalues values, string selection,
string selectionargs) throws remoteexception;
public parcelfiledescriptor openfile(uri url, string mode)
throws remoteexception, filenotfoundexception;
public assetfiledescriptor openassetfile(uri url, string mode)
throws remoteexception, filenotfoundexception;
但是閱讀contentprovider**時,會發現
view plain
print?
public
abstract
boolean oncreate();
public
void onconfigurationchanged(configuration newconfig);
public
void onlowmemory();
這幾個方法並不在icontentprovider中宣告,因此千萬注意它們在執行時並不是處在androidmanifest.xml中宣告時的程序中。而是處在呼叫contentprovider的應用的程序中的。
因此千萬不要在oncreate中新增你期望執行在contentprovider的程序的**。
執行在單獨程序中的ContentProvider
contentprovider既可以與呼叫方處在同一程序,也可以執行在單獨程序中,完全取決於contentprovider所處的aplication的程序資訊。因此假如contentprovider執行在單獨的程序中,那麼呼叫contentprovider將會涉及到ipc通訊。既然涉及到ipc通訊,...
讓程序執行在指定的CPU
我的linode十分繁忙,在跑一些密集運算元據庫的rake任務時尤其如此。但我觀察發現,linode伺服器的4核cpu,只有第1個核心 cpu 0 非常忙,其他都處於idle狀態。不了解linux是如何排程的,但在linode的這種狀態下,顯然有優化的餘地。除了處理正常任務,cpu 0還需要處理各種...
C 將程序執行在指定的CPU上
方法 setprocessaffinitymask handle,dword 其中,第乙個引數為程序控制代碼。如果要知道當前執行緒的控制代碼,可以通過函式 getcurrentthread 得到。否則,在建立多執行緒的時候,也同樣可以得到建立的執行緒的控制代碼。第二個引數為mask,可取值為0 2 ...