你可以把它分配给全球的应用对象,你就可以从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