2016-07-07 5 views
3

なって再オープンし、既に閉じたオブジェクトの例外への試み上記のコードは、テーブルに挿入しながら、再オープンにしようと、既に閉じたオブジェクト

public class UploadImagesToServer { 

    static ImgeURLdb imgURLdb; 
    static Context mContext; 
    public static void postImage(String ImageLink, String imageName, Context context) { 
     mContext = context; 
     imgURLdb = new ImgeURLdb(mContext); 
     RequestFuture<JSONObject> future = RequestFuture.newFuture(); 
     JSONObject jsonObject = new JSONObject(); 
     try { 
      jsonObject.put("file",new File(ImageLink)); 
      Log.i("imageName","Sending Image"+ImageLink); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     JsonObjectRequest request = new JsonObjectRequest(Constants.MediaUpload, jsonObject, future, future); 
     RequestQueue requestQueue = Volley.newRequestQueue(context); 
     requestQueue.add(request); 

     try { 
      JSONObject response = future.get(10, TimeUnit.SECONDS);// Blocks for at most 10 seconds. 
      String imageURL = response.getString(""); 
      addImagetoDB(imageName,imageURL); 
      Log.i("imageName","getting URL"+imageURL+""); 
     } catch (InterruptedException e) { 
      // Exception handling 
     } catch (ExecutionException e) { 
      // Exception handling 
     } catch (TimeoutException e) { 

      //addImagetoDB(imageName,"imageURL"); 

      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 



    } 

    private static void addImagetoDB(String imageName, String imageURL) { 

     imgURLdb.addImageURL(imageName,imageURL); 


    } 
} 

public void addImageURL(String imageName, String imageURL){ 

    DbHelper mDBhelper = new DbHelper(mContext); 
    SQLiteDatabase sqlDB = mDBhelper.getWritableDatabase(); 
    ContentValues values = new ContentValues(); 
    String query = "Select id from "+DbHelper.IMAGE_URL+" where "+DbHelper.IMAGE_NAME + "=?"; 
    String[] args = new String[1]; 
    args[0] = imageName; 

    Cursor myCursur = mDBhelper.myquery(query,args); 

    if (myCursur != null && myCursur.getCount() > 0) { 
     myCursur.moveToPosition(-1); 
     while (myCursur.moveToNext()) { 
      values.put(DbHelper.IMAGE_URL,imageURL); 
      sqlDB.insert(DbHelper.IMAGE_URL, null, values); 

     } 
     myCursur.close(); 

    } else 
    { 
     Log.e("tag", "Cursor is zero"); 

    } 

    mDBhelper.close(); 
    sqlDB.close(); 

} 
をDBへのURLを追加して取得しています

これは、画像URLをdbに追加する方法です。あなたが既に閉じられているオブジェクト例外を再オープンしようとしているときに

+0

DbHelperクラスのコードを投稿してください。問題があります。おそらくgetWritableDatabase()メソッドまたはmyquery()メソッドで発生します。 –

答えて

0

あなたの "myquery()"メソッドの実装がDbHelperで見えませんが、あなたはそれを返す。カーソルをそこに閉じないとうまくいくはずです。

関連する問題