title: how to make insert in sqlite database only once ? and stop inserting even if i return to the activity again?
body: <p>I have an android file in which i retrieve <code>JSON</code> data from server and then i insert it into <code>sqlite</code> database and then display it into <code>listView</code> <code>customAdapter</code>. </p>
  
  <p>But every time i go to another activity and return to the main one , it keeps inserting in the table again .. how can i prevent this?? </p>
  
  <p>here is the code :</p>
  
  <pre><code>package com.example.mvctest;
  
  import java.io.IOException;
  import java.util.ArrayList;
  import java.util.List;
  
  import org.apache.http.HttpEntity;
  import org.apache.http.HttpResponse;
  import org.apache.http.client.ClientProtocolException;
  import org.apache.http.client.HttpClient;
  import org.apache.http.client.methods.HttpGet;
  import org.apache.http.impl.client.DefaultHttpClient;
  import org.apache.http.util.EntityUtils;
  import org.json.JSONArray;
  import org.json.JSONException;
  import org.json.JSONObject;
  
  
  import sereen.sql.Details_info;
  import sereen.sql.Info;
  import sereen.sql.InfoServicesNew;
  import android.os.AsyncTask;
  import android.os.Bundle;
  import android.app.Activity;
  import android.app.ProgressDialog;
  import android.content.Intent;
  import android.util.Log;
  import android.view.KeyEvent;
  import android.view.Menu;
  import android.view.View;
  import android.view.Window;
  import android.widget.AdapterView;
  import android.widget.ArrayAdapter;
  import android.widget.ListView;
  import android.widget.Toast;
  import android.widget.AdapterView.OnItemClickListener;
  
  public class PenddingOrders extends Activity {
  ArrayList&lt;Info&gt; info=new ArrayList&lt;Info&gt;(); 
  
      ListView list;
      ProgressDialog pd;
  
      private String defValue = "N/A";
  
      InfoServicesNew databaseHelper;
       String name=InfoServicesNew.DB_TABLE_NAME;
       String name2=InfoServicesNew.DB_TABLE_NAME5;
      static int img=R.drawable.ex2;
      String data;
      Intent o;
      int position;
      Object object;
  
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_pendding_orders);
          setTitle("الطلبات الجديدة");
          databaseHelper = new InfoServicesNew(this);
  
  
  
          list=(ListView)findViewById(R.id.listView1);
          pd = new ProgressDialog(this);
  
       new asy().execute("http://192.168.1.113/JsonRoot/transitions/Pendding_orders.json");
  //      new asy().execute("http://jsonblob.com/api/jsonBlob/53021f22e4b0f9ce1677329a");
  
  
  
  
  
  
      } 
  
  
      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.pendding_orders, menu);
          return true;
      }
      public class asy extends AsyncTask&lt;String, String, ArrayList&lt;Info&gt;&gt;
      {
  
  
  
          @Override
          protected ArrayList&lt;Info&gt; doInBackground(String... params) {
              // TODO Auto-generated method stub
  
               //activity is defined as a global variable in your AsyncTask
  
              try {
  
                  HttpClient hc = new DefaultHttpClient();
                  HttpGet hg = new HttpGet(params[0]);
                  HttpResponse hr = hc.execute(hg);
                  HttpEntity he = hr.getEntity();
                  data = EntityUtils.toString(he);
                  Log.i("data", data);
  
              } 
              catch (ClientProtocolException e) {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              } 
              catch (IOException e) 
              {
                  // TODO Auto-generated catch block
                  e.printStackTrace();
              }
  
              ArrayList&lt;Info&gt; sereenlist = new ArrayList&lt;Info&gt;();
              sereenlist = getJSONData(data);
  
              return sereenlist;
  
  
  
          }
  
  
          private ArrayList&lt;Info&gt; getJSONData(String data) {
              // TODO Auto-generated method stub
  
              String id = null;
              String item=null;
              String amount=null;
              String unit=null;
              String price=null;
              String total_price=null;
  
              ArrayList&lt;Info&gt; rs = null;
  
  
                  try {
  
                  JSONObject obj = new JSONObject(data);
                  JSONArray finalObj = obj.optJSONArray("orders");
  
                  for (int i = 0; i &lt; finalObj.length(); i++) 
                  {
  
                      final String orderNumber = finalObj.optJSONObject(i).optString(
                              "order-number");
                      final String orderAmount = finalObj.optJSONObject(i).optString(
                              "order-amount");
                      final String date = finalObj.optJSONObject(i).optString(
                              "date");
                      final String client = finalObj.optJSONObject(i).optString(
                              "client");
                      final String upperLimit = finalObj.optJSONObject(i).optString(
                              "upper-limit");
                      final String debt = finalObj.optJSONObject(i).optString(
                              "debt");
                      JSONArray details = finalObj.getJSONObject(i).getJSONArray("details");
  
                      for(int j=0; j&lt;details.length(); j++)
                      {
                           id = details.getJSONObject(j).optString("id");
                           item = details.getJSONObject(j).optString("item");
                           amount = details.getJSONObject(j).optString("amount");
                           unit = details.getJSONObject(j).optString("unit");
                           price = details.getJSONObject(j).optString("price");
                           total_price = details.getJSONObject(j).optString("total-price");
  //                       Log.e("id", id);
  //                       Log.e("item", item);
  //                       Log.e("amount", amount);
  //                       Log.e("unit", unit);
  //                       Log.e("price", price);
  //                       Log.e("total_price", total_price);
  
                          }
  
                      long id1=databaseHelper.insert(new Info(client,orderAmount,date ,orderNumber,upperLimit,debt,img),name);
                      databaseHelper.insert_details(new Details_info(id,item,amount ,unit,price,total_price,orderNumber),name2);
  
  
                  }
  
  
                    rs = databaseHelper.selectAll(name,img);
                      databaseHelper.close();
  
                      Log.i("size", finalObj.length()+"");
              }//try end
  
              catch (JSONException e1) {
                  // TODO Auto-generated catch block
                  e1.printStackTrace();
              }
  
                  return rs;
          }
  
  
  
          @Override
          protected void onPreExecute() {
              // TODO Auto-generated method stub
              super.onPreExecute();
              pd.setTitle("fetching");
              pd.setMessage("waiting...");
              pd.show();
          }
  
  
  
          @Override//
          protected void onPostExecute(ArrayList&lt;Info&gt; result) {
              // TODO Auto-generated method stub
              ArrayList&lt;Info&gt; rs = null;
               rs = databaseHelper.selectAll(name,img);
               SetAdapterList(rs);
              //SetAdapterList(result);
  
              pd.dismiss();
          }
  
  
          private void SetAdapterList(ArrayList&lt;Info&gt; result) 
          {
              // TODO Auto-generated method stub
  
  
  
              CustomAdapter adapter=new CustomAdapter(getApplicationContext(), result);
              list.setAdapter(adapter);
  
              list.setOnItemClickListener(new OnItemClickListener() {
  
                  @Override
                  public void onItemClick(AdapterView&lt;?&gt; arg0, View arg1, int arg2,
                          long arg3) {
                      // TODO Auto-generated method stub
  
                      Intent i=new Intent(PenddingOrders.this,Details.class);
                      int myId=arg2;
  
                      object = list.getItemAtPosition(arg2);
                      Info detail = (Info) object;
  
                      String client = detail.getClient();
                      String orderAmount = detail.getOrderAmount();
                      String date=detail.getdate();
                      String orderNumber=detail.getorderNumber();
                      String upperLimit=detail.getupperLimit();
                      String debt=detail.getdept();
  
  //                  Log.e("value is ", client);
  //                  Log.e("value is1 ", orderAmount);
  
  
                      i.putExtra("myid", ""+myId);
                      i.putExtra("client", ""+ client);
                      i.putExtra("orderAmount", ""+orderAmount);
                      i.putExtra("date", date);
                      i.putExtra("orderNumber", orderNumber);
                      i.putExtra("upperLimit", upperLimit);
                      i.putExtra("debt", debt);
                      startActivity(i);
  
  
  
                  }
              });
  //    
          }
  
      }
  
  }
  </code></pre>
  
  <p>and here is my <strong>InfoServiceNew.java</strong> class :  </p>
  
  <pre><code>package sereen.sql;
  import java.util.ArrayList;
  import java.util.List;
  import android.content.ContentValues;
  import android.content.Context;
  import android.database.Cursor;
  import android.database.sqlite.SQLiteDatabase;
  import android.database.sqlite.SQLiteDatabase.CursorFactory;
  import android.database.sqlite.SQLiteOpenHelper;
  
  public class InfoServicesNew extends SQLiteOpenHelper{
  
      private String KEY_ID = "ID";
      private String KEY_CLIENT = "CLIENT";
      private String KEY_ORDER_AMOUNT = "ORDERAMOUNT";
      private String KEY_DATE = "DATE";
      private String KEY_ORDER_NUMBER = "ORDERNUMBER";
      private String KEY_UPPER_LIMIT = "UPPERLIMIT";
      private String KEY_DEBT = "DEBT";
  
      private String KEY_ITEM_ID = "ITEMID";
      private String KEY_ITEM = "ITEM";
      private String KEY_AMOUNT = "AMOUNT";
      private String KEY_UNIT = "UNIT";
      private String KEY_PRICE = "PRICE";
      private String KEY_TOTAL_PRICE = "TOTALPRICE";
  
  
      private static String DB_NAME = "FUCHES";
      public static String DB_TABLE_NAME = "PENDDINGORDERS";
      public static String DB_TABLE_NAME2 = "APPROVEDORDERS";
      public static String DB_TABLE_NAME3 = "DENIEDORDERS";
      public static String DB_TABLE_NAME4 = "HISTORY";
      public static String DB_TABLE_NAME5 = "DETAILS";
      private static int DB_VERSION = 16;
  
      private static SQLiteDatabase database;
      public InfoServicesNew(Context context) {
          super(context, DB_NAME, null, DB_VERSION);
          database = getWritableDatabase();
      }
  
      @Override
      public void onCreate(SQLiteDatabase db) {
          db.execSQL("CREATE TABLE " + DB_TABLE_NAME + " (" + KEY_ID
                  + " INTEGER PRIMARY KEY AUTOINCREMENT , " + KEY_CLIENT+" TEXT,"  +
                  KEY_ORDER_AMOUNT+" TEXT,"  +
                   KEY_DATE +" TEXT,"  + KEY_ORDER_NUMBER + " TEXT ," +
                   KEY_UPPER_LIMIT + " TEXT ,"+ KEY_DEBT +" TEXT );");
          db.execSQL("CREATE TABLE " + DB_TABLE_NAME2 + " (" + KEY_ID
                  + " INTEGER PRIMARY KEY AUTOINCREMENT , " + KEY_CLIENT+" TEXT,"  +
                  KEY_ORDER_AMOUNT+" TEXT,"  +
                   KEY_DATE +" TEXT,"  + KEY_ORDER_NUMBER + " TEXT ," +
                   KEY_UPPER_LIMIT + " TEXT ,"+ KEY_DEBT +" TEXT );");
          db.execSQL("CREATE TABLE " + DB_TABLE_NAME3 + " (" + KEY_ID
                  + " INTEGER PRIMARY KEY AUTOINCREMENT , " + KEY_CLIENT+" TEXT,"  +
                  KEY_ORDER_AMOUNT+" TEXT,"  +
                   KEY_DATE +" TEXT,"  + KEY_ORDER_NUMBER + " TEXT ," +
                   KEY_UPPER_LIMIT + " TEXT ,"+ KEY_DEBT +" TEXT );");
          db.execSQL("CREATE TABLE " + DB_TABLE_NAME4 + " (" + KEY_ID
                  + " INTEGER PRIMARY KEY AUTOINCREMENT , " + KEY_CLIENT+" TEXT,"  +
                  KEY_ORDER_AMOUNT+" TEXT,"  +
                   KEY_DATE +" TEXT,"  + KEY_ORDER_NUMBER + " TEXT ," +
                   KEY_UPPER_LIMIT + " TEXT ,"+ KEY_DEBT +" TEXT );");
          db.execSQL("CREATE TABLE " + DB_TABLE_NAME5 + " (" + KEY_ID
                  + " INTEGER PRIMARY KEY AUTOINCREMENT , " + KEY_ITEM_ID+" TEXT,"  + KEY_ORDER_NUMBER+" TEXT,"  +
                  KEY_ITEM+" TEXT,"  +
                  KEY_AMOUNT +" TEXT,"  + KEY_UNIT + " TEXT ," +
                  KEY_PRICE + " TEXT ,"+ KEY_TOTAL_PRICE +" TEXT );");
      }
  
      @Override
      public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
          db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME);
          db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME2);
          db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME3);
          db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME4);
          db.execSQL("DROP TABLE IF EXISTS " + DB_TABLE_NAME5);
          onCreate(db);
      }
  
      public ArrayList&lt;Info&gt; selectAll(String Db_name, int img) {
          String columns[] = new String[] { KEY_ID, KEY_CLIENT,KEY_ORDER_AMOUNT, KEY_DATE ,KEY_ORDER_NUMBER,KEY_UPPER_LIMIT,KEY_DEBT};
          Cursor c = database.query(Db_name, columns, null, null,null,null,null);
  
          int idIndex = c.getColumnIndex(KEY_ID);
          int clientIndex = c.getColumnIndex(KEY_CLIENT);
          int orderamountIndex = c.getColumnIndex(KEY_ORDER_AMOUNT);
          int dateIndex = c.getColumnIndex(KEY_DATE);
          int ordernumberIndex = c.getColumnIndex(KEY_ORDER_NUMBER);
          int upperlimitIndex = c.getColumnIndex(KEY_UPPER_LIMIT);
          int deptIndex = c.getColumnIndex(KEY_DEBT);
          ArrayList&lt;Info&gt; list = new ArrayList&lt;Info&gt;();
          if (c.moveToFirst()) {
              do {
                  list.add(new Info(c.getInt(idIndex), c.getString(clientIndex), c.getString(orderamountIndex), c.getString(dateIndex),c.getString(ordernumberIndex),c.getString(upperlimitIndex),c.getString(deptIndex),img));
              } while (c.moveToNext());
          }
          return list;
  
      }
      public ArrayList&lt;Details_info&gt; selectAllDetails(String Db_name) {
          String columns[] = new String[] { KEY_ID, KEY_ITEM_ID,KEY_ORDER_NUMBER,KEY_ITEM, KEY_AMOUNT ,KEY_UNIT,KEY_PRICE,KEY_TOTAL_PRICE};
          Cursor c = database.query(Db_name, columns, null, null,null,null,null);
  
          int idIndex = c.getColumnIndex(KEY_ID);
          int itemidIndex = c.getColumnIndex(KEY_ITEM_ID);
          int ordernumberIndex = c.getColumnIndex(KEY_ORDER_NUMBER);
          int itemIndex = c.getColumnIndex(KEY_ITEM);
          int amountIndex = c.getColumnIndex(KEY_AMOUNT);
          int unitIndex = c.getColumnIndex(KEY_UNIT);
          int priceIndex = c.getColumnIndex(KEY_PRICE);
          int totalpriceIndex = c.getColumnIndex(KEY_TOTAL_PRICE);
          ArrayList&lt;Details_info&gt; list = new ArrayList&lt;Details_info&gt;();
          if (c.moveToFirst()) {
              do {
                  list.add(new Details_info(c.getInt(idIndex), c.getString(itemidIndex), c.getString(ordernumberIndex), c.getString(itemIndex),c.getString(amountIndex),c.getString(unitIndex),c.getString(priceIndex),c.getString(totalpriceIndex)));
              } while (c.moveToNext());
          }
          return list;
      }
  
  
      public long insert(Info info, String DB_name) {
          ContentValues cv = new ContentValues();
          cv.put(KEY_CLIENT, info.getClient());
          cv.put(KEY_ORDER_AMOUNT, info.getOrderAmount());
          cv.put(KEY_DATE, info.getdate());
          cv.put(KEY_ORDER_NUMBER, info.getorderNumber());
          cv.put(KEY_UPPER_LIMIT, info.getupperLimit());
          cv.put(KEY_DEBT, info.getdept());
  
          return database.insert(DB_name, null, cv);
      }
  
      public long update(Info info,String DB_name) {
          ContentValues cv = new ContentValues();
          cv.put(KEY_CLIENT, info.getClient());
          cv.put(KEY_ORDER_AMOUNT, info.getOrderAmount());
          cv.put(KEY_DATE, info.getdate());
          cv.put(KEY_ORDER_NUMBER, info.getorderNumber());
          cv.put(KEY_UPPER_LIMIT, info.getupperLimit());
          cv.put(KEY_DEBT, info.getdept());
          return database.update(DB_name, cv,
                  KEY_ID + " = " + info.getId(), null);
      }
  
  
  
      public long insert_details(Details_info detail, String name2) {
          // TODO Auto-generated method stub
          ContentValues cv = new ContentValues();
          cv.put(KEY_ITEM_ID, detail.getItemid());
          cv.put(KEY_ITEM , detail.getItem());
          cv.put(KEY_AMOUNT, detail.getAmount());
          cv.put(KEY_UNIT, detail.getUnit());
          cv.put(KEY_PRICE, detail.getPrice());
          cv.put(KEY_TOTAL_PRICE, detail.getTotalprice());
          cv.put(KEY_ORDER_NUMBER, detail.getOrdernumber());
  
          return database.insert(name2, null, cv);
      }
      public long update_details(Details_info detail,String DB_name) {
          ContentValues cv = new ContentValues();
          cv.put(KEY_ITEM_ID, detail.getItemid());
          cv.put(KEY_ITEM , detail.getItem());
          cv.put(KEY_AMOUNT, detail.getAmount());
          cv.put(KEY_UNIT, detail.getUnit());
          cv.put(KEY_PRICE, detail.getPrice());
          cv.put(KEY_TOTAL_PRICE, detail.getTotalprice());
          cv.put(KEY_ORDER_NUMBER, detail.getOrdernumber());
          return database.update(DB_name, cv,
                  KEY_ID + " = " + detail.getId(), null);
      }
      public long delete_details(int id,String Db_name) {
          return database.delete(Db_name, KEY_ID + " = " + id, null);
      }
  
      public long delete(int id, String name2) {
          // TODO Auto-generated method stub
          return database.delete(name2, KEY_ID + " = " + id, null) ;
  
  
  
      }
  
  }
  </code></pre>