你可以把它分配給全球的應用對象,你就可以從Activity
和Content Provider
訪問。你可以,如果只是檢查實例化無論是Activity
或CP
SQLOpenHelper
其空或不是,如果它的空創建新SQLOpenHelper
對象,並分配給全局對象。
public class ClassName extends Application {
private SQLiteOpenHelper helper;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
}
public SQLiteOpenHelper getHelper() {
return helper;
}
public void setHelper(SQLiteOpenHelper helper) {
this.helper = helper;
}
}
,你必須指定AndroidManifest.xml
要創建應用程序上下文
<application
android:name="ClassName" // <----- This line
android:icon="@drawable/icon"
android:label="@string/app_name" >
然後從Activity
或Content Provider
來電助手這樣的。
SQLiteOpenHelper helper = ((ClassName)getApplication()).getHelper();
if(null == helper) {
helper = new SQLiteOpenHelper();
}
如果你已經有CP使用SLOH只有在CP和通過CP活動ACCES數據... – Selvin 2012-04-02 12:56:03
但是怎麼辦如果我沒有對它的引用,我從Activity訪問ContentProvider實例?這正是我的問題。 – 2012-04-02 13:13:30
你不會得到CP的情況......你應該只是查詢CP與'Activity.getContentResolver()查詢(Uri.parse( 「內容://your.content」。)的cols,休息日,,東西);'...... – Selvin 2012-04-02 13:26:53