I want to call back same asynctask after its completion how do i do so. i want to sync my messages from server regularly. currently i am using timer to run this method regularly but its not worthy so i want to call back this method after its completion
here is my async task function
private class syncMessageFromServer extends AsyncTask<Void, Integer, String> {
        @Override
        protected void onPreExecute() {
            // setting progress bar to zero
            //progressBar.setProgress(0);
            super.onPreExecute();
        }
        @Override
        protected void onProgressUpdate(Integer... progress) {
        }
        @Override
        protected String doInBackground(Void... params) {
            return uploadFile();
        }
        @SuppressWarnings("deprecation")
        private String uploadFile() {
            String str = "";
            HttpResponse response;
            HttpClient myClient = new DefaultHttpClient();
            HttpPost myConnection = new HttpPost("http://192.168.1.2/AndroidApp/GetMessage?loginUserInfoId="+loginUserInfoId+"&recieverUserInfoId="+receiverUserInfoId+"&isPendingToSynce="+true);
            try {
                response = myClient.execute(myConnection);
                str = EntityUtils.toString(response.getEntity(), "UTF-8");
            } catch (ClientProtocolException e) {
                e.printStackTrace();
            } catch (IOException e) {
                e.printStackTrace();
            }
            try{
                JSONArray jArray = new JSONArray(str);
                for(int i = 0; i<=jArray.length()-1; i++)
                {
                    JSONObject row = jArray.getJSONObject(i);
                    ChatMessage cm = new ChatMessage();
                    String onlineFileURL = "";
                    String upFileURL = row.getString("FileAttachedURL").replace(" ", "%20");
                    String offlineFileURL = "";
                    if(!upFileURL.isEmpty()) {
                        onlineFileURL = "http://192.168.1.2" + row.getString("FileAttachedURL").replace(" ", "%20");
                        downloadBitmap(onlineFileURL);
                        String fileName = upFileURL.substring(upFileURL.lastIndexOf('/') + 1, upFileURL.length());
                        offlineFileURL = Environment.getExternalStorageDirectory() + File.separator + "/Planetskool/Media/Images/" + fileName;
                    }
                    else {
                        offlineFileURL = "";
                    }
                    /******* Firstly take data in model object ******/
                    cm.setOriginalMsgThreadId(row.getString("MessageThreadId"));
                    cm.setSenderUserInfoId(row.getString("SenderUserId"));
                    cm.setReceiverUserInfoId(row.getString("MultipleReceiversId"));
                    cm.setMessageStatus("SENT");
                    cm.setIsPending(0);
                    cm.setMessageText(row.getString("MessageText"));
                    cm.setMediaURL(offlineFileURL);
                    cm.setThumbImage(offlineFileURL);
                    cm.setMediaMIMEType("");
                    cm.setMediaSize(0);
                    cm.setMediaName("");
                    cm.setLatitude("");
                    cm.setLongitude("");
                    cm.setSendTimeStamp(row.getString("SendTime"));
                    cm.setReceiveTimeStamp(row.getString("ReadTime"));
                    long messageThreadId = db.SendMessage(cm);
                    confirmSyncedToServer(row.getString("MessageId"));
                    chatMessageAdapter.add(cm);
                }
            } catch ( JSONException e) {
                e.printStackTrace();
            }
            return str;
        }
        @Override
        protected void onPostExecute(String result) {
            new syncMessageFromServer.execute();
            super.onPostExecute(result);
        }
    }