0

已设置存储适配器(上下文)以帮助创建和管理单个数据库和表。尝试从新线程访问表以读取记录并在后台通过 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();
};

当然希望我没有混淆大家。几天一直在追我的尾巴,我很困惑。谢谢你的帮助。

4

1 回答 1

0

好像您正在从 Worker 实例中创建您的 StorageAdapter 实例。这意味着this引用了 Worker 而不是 Context。如果你的 Worker 是一个匿名类,你可以使用类似MyActivity.this而不是this的东西。

于 2012-08-01T00:34:33.887 回答