sql >> データベース >  >> RDS >> SQLite

別のクラスで動作するasynctaskクラスでdatabasehelperクラスを使用する方法

    これを試してください:

     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
         }
     }
    

    このAsyncTaskは、次の行で呼び出すことができます-アクティビティに参加していると仮定します:

     new FetchData().execute(this);
    

    AsyncTaskの減速を変更できない場合は、静的変数を使用してみることができます。ただし、AsyncTaskの減速ほど効率的できれいではありません。これを試してください:

    Class myStatic{
    private  static Context mContext;
    
    
    static public void setContext(Context c);
    mContext = c;
    }
    
    static public Context getContext(){
    return mContext;
    }
    
    }
    

    メインコードで、AsyncTaskを呼び出す前に、次のように呼び出します。

    myStatic.setContext(this);
    

    AsyncTaskのdoInBackgroundメソッドに、次を追加します:

    Context myContext = myStatic.getContext();
    



    1. INSERTINTOとSELECTINTO

    2. 1列のみのDISTINCT

    3. PostgreSQLおよびTimescaleDB用にSELinuxを構成する方法

    4. MySQLでのLOWER()関数のしくみ