I am sending data from text file to server using service code given below. It sends data line by line to server. I want the service to run in background continuously.For this I have written asyncTask. But it sends all data once and then stops.
public class BackgroundService extends Service
    {
        private static final String TAG = "BackgroundService";
        String line=null;
        Context mContext = null;
        File file;RandomAccessFile in = null;
        StringEntity se ;
        HttpEntity entity=null;
        final static int SERVICE_NAME = 1;
        int WORK_TYPE;
    public BackgroundService()
    {
        //super(TAG);
    }
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        // TODO Auto-generated method stub
        Toast.makeText(getApplicationContext(),"in BackgroundService",       Toast.LENGTH_LONG).show();
         mContext = getBaseContext();
         WORK_TYPE = 2;
         new BackgroundTask(mContext).execute();
         return super.onStartCommand(intent, flags, startId);
    }
    public class BackgroundTask extends AsyncTask<String, String, Void>
    {
        Context mContext = null;String response;
       public BackgroundTask(Context context)
    {
        mContext = context;
    }
    protected void onPreExecute()
    {
        Toast.makeText(getApplicationContext(),"1", Toast.LENGTH_LONG).show();
    }
    protected Void doInBackground(final String... args)
    {
        switch (WORK_TYPE)
        {
            case 2:
                 File file = new File(Environment.getExternalStorageDirectory(),"/BPCLTracker/gpsdata.txt");
                  int i=0;
                  RandomAccessFile in = null;
            try {
                in = new RandomAccessFile(file, "rw");
            } catch (FileNotFoundException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            try {
                while ((line = in.readLine()) != null)
                  {
                     String input = line.toString();
                     response = sendDataToServer(input);
                     // JsonUtils.parseServerData(response, hashMapObj);
                  }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
                break;
        }//switch
        return null;
    }//doInBackground
    protected void onPostExecute(final Void unused)
    {
        Toast.makeText(getApplicationContext(),"3", Toast.LENGTH_LONG).show();
        switch (WORK_TYPE)
        {
            case 2:
                if (!"".equalsIgnoreCase(response) && response != null)
                {
                    //DeviceUtils.deviceRegistration(hashMapObj, mContext);   
                    callService(1);
                }
            try {
                if((line = in.readLine()) == null && entity!=null)
                {
                    file.delete();
                    new BackgroundTask(mContext).execute();
                }
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
                break;
        }
    }
}
public void callService(int work)
{
    WORK_TYPE = work;
    new BackgroundTask(mContext).execute();
}
public String sendDataToServer(String data)
{
    StringBuffer sb = new StringBuffer("");
    String serverUrl = "http://67.23.166.35:80/android/insert.php" ;
    try
    {
        URL url = new URL(serverUrl);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setDoInput(true);
        conn.setDoOutput(true);
        conn.setConnectTimeout(6 * 10 * 1000);
        conn.setRequestProperty("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
        conn.setRequestMethod("POST");
        OutputStreamWriter wr = new OutputStreamWriter(conn.getOutputStream());
        wr.write(data);
        wr.flush();
        // Get the response
        BufferedReader rd = new BufferedReader(new InputStreamReader(conn.getInputStream()));
        String line = "";
        while ((line = rd.readLine()) != null)
        {
            // Process line...
            sb.append(line);
        }
        wr.close();
        rd.close();
        return sb.toString();
    }
    catch (Exception e)
    {
        Log.d("Exception : ", e.getStackTrace().toString());
    }
    return sb.toString();
}
}
Thank you
 
    