已设置存储适配器(Contextual)以帮助创建和管理单个数据库和表。尝试从新线程访问该表以读取记录并在后台通过HTTP传输它们。对数据库的其他访问是基于活动的,仅插入。虽然数据很小,但线程可能会根据可能的记录数运行几秒钟。无需与UI进行通信。
StorageAdapter类(SQL Lite设置)
private static SQLiteDatabase db;
private Context context;
private StorageOpenHelper dbHelper;
public StorageAdapter(Context _context) {
this.context = _context;
dbHelper = new StorageOpenHelper(context, DATABASE_NAME, null, DATABASE_VERSION);
}
以下主题的错误消息是:“构造函数StorageAdapter(Worker)未定义”
以下是主题:
public void run () {
// Does Storage Adapter need to be runnable
// Read DB ID's of committed (1) records into array
**StorageAdapter storageAdapter = new StorageAdapter(this);**
storageAdapter.open();
cursor = storageAdapter.queueCommID();
int i = 0;
int currcnt = cursor.getCount();
if (cursor.getPosition() == -1) cursor.moveToFirst();
while (i < currcnt) {
// Send single record to server
sendrec(cursor);
i=i+1;
cursor.moveToNext();
}
storageAdapter.close();
stop();
};
当然希望我没有让所有人感到困惑。一直在追我的尾巴,我很困惑。谢谢你的帮助。
答案 0 :(得分:0)
似乎是在Worker实例中创建StorageAdapter实例。这意味着 this 引用了Worker而不是Context。如果您的工作人员是匿名课程,您可以使用 MyActivity.this 之类的内容,而不仅仅是此。