SQLite
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> SQLite

Cách sử dụng lớp databasehelper trong lớp asynctask làm việc trên một lớp khác

Hãy thử điều này:

 private class FetchData extends AsyncTask<Context, Void, Void> {
     protected Long doInBackground(Context... c) {
         Context myContext = c[0];
// Do your things here....
     }


     protected void onPostExecute() {
// Insert your post execute code here
     }
 }

Bạn có thể gọi đây là AsyncTask theo dòng sau - giả sử bạn đang tham gia một hoạt động:

 new FetchData().execute(this);

nếu Bạn không thể thay đổi mức giảm tốc AsyncTask của mình, thì bạn có thể thử sử dụng một biến tĩnh - mặc dù nó không hiệu quả và đẹp như giảm tốc AsyncTask. Hãy thử điều này:

Class myStatic{
private  static Context mContext;


static public void setContext(Context c);
mContext = c;
}

static public Context getContext(){
return mContext;
}

}

và trong mã chính của bạn, trước khi bạn gọi AsyncTask, hãy gọi mã này:

myStatic.setContext(this);

trong phương thức doInBackground của AsyncTask của bạn, hãy thêm cái này:

Context myContext = myStatic.getContext();



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Trừ ngày cho một ngày trong SQLite

  2. Giao dịch SQLite

  3. Cách truy cập và cập nhật tệp db Sqlite được lưu trữ cục bộ [thư mục tài sản] trong tệp dự án bằng cordova

  4. Truy vấn SQLite:lấy tất cả các cột của một hàng (android)?

  5. 3 Cách tạo Tập lệnh TẠO BẢNG từ một Bảng hiện có trong SQLite