title: Android: Where and how to auto refresh listview (I have the refresh function)
body: <p>This is my MainActivity, I really need help on creating a function that will autorefresh the listview every minute</p>
  
  <p>In my MainActivity I have this code:</p>
  
  <pre><code>    //This method is called when swipe refresh is pulled down
  
      @Override
      public void onRefresh() {
          fetchOrders();
      }
  </code></pre>
  
  <p>I've read a few articles about the handler, I gotta say I have no idea where to put the handler's code, therefore if you can give me a hand and post my full MainActivity with that additional desired code, it would be more than appreciated</p>
  
  <p>Thanks in advance! </p>
  
  <pre><code>public class MainActivity extends AppCompatActivity implements SwipeRefreshLayout.OnRefreshListener {
  
      private int mInterval = 5000; // 5 seconds by default, can be changed later
      private Handler mHandler;
  
      private String TAG = MainActivity.class.getSimpleName();
  
      private String URL = "http://troyka.esy.es/troyka/orders.php";
  
  
      private SwipeRefreshLayout swipeRefreshLayout;
      private ListView listView;
      private SwipeListAdapter adapter;
      private List&lt;Order&gt; orderList;
  
      // initially offset will be 0, later will be updated while parsing the json
      private int offSet = 0;
  
      @Override
      protected void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.activity_main);
  
  
  
          listView = (ListView) findViewById(R.id.listView);
          //RelativeLayout.LayoutParams layout_description = new RelativeLayout.LayoutParams(50,10);
  
          //Rl.setLayoutParams(layout_description);
  
          swipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);
  
          orderList = new ArrayList&lt;&gt;();
          adapter = new SwipeListAdapter(this, orderList);
          listView.setAdapter(adapter);
  
          swipeRefreshLayout.setOnRefreshListener(this);
  
          /**
           * Showing Swipe Refresh animation on activity create
           * As animation won't start on onCreate, post runnable is used
           */
          swipeRefreshLayout.post(new Runnable() {
                                      @Override
                                      public void run() {
                                          swipeRefreshLayout.setRefreshing(true);
  
                                          fetchOrders();
                                      }
                                  }
          );
  
          mHandler = new Handler();
          startRepeatingTask();
      }
      Runnable mStatusChecker = new Runnable() {
          @Override
          public void run() {
              //updateStatus(); //this function can change value of mInterval.
              mHandler.postDelayed(mStatusChecker, mInterval);
          }
      };
      void startRepeatingTask() {
          mStatusChecker.run();
      }
  
      void stopRepeatingTask() {
          mHandler.removeCallbacks(mStatusChecker);
      }
  
      /**
       * This method is called when swipe refresh is pulled down
       */
  
  
      @Override
      public void onRefresh() {
          fetchOrders();
      }
  
      /**
       * Fetching movies json by making http call
       */
      private void fetchOrders() {
  
          // showing refresh animation before making http call
          swipeRefreshLayout.setRefreshing(true);
  
          // appending offset to url
          String url = URL + offSet;
  
          // Volley's json array request object
          JsonArrayRequest req = new JsonArrayRequest(url,
                  new Response.Listener&lt;JSONArray&gt;() {
                      @Override
                      public void onResponse(JSONArray response) {
                          Log.d(TAG, response.toString());
  
                          if (response.length() &gt; 0) {
  
                              // looping through json and adding to order list
                              for (int i = 0; i &lt; response.length(); i++) {
                                  try {
                                      JSONObject orderObj = response.getJSONObject(i);
  
                                      int rank = orderObj.getInt("rank");
                                      String title = orderObj.getString("title");
  
                                      Order m = new Order(rank, title);
  
                                      orderList.add(0, m);
  
                                      // updating offset value to highest value
                                      if (rank &gt;= offSet)
                                          offSet = rank;
  
                                  } catch (JSONException e) {
                                      Log.e(TAG, "JSON Parsing error: " + e.getMessage());
                                  }
                              }
  
                              adapter.notifyDataSetChanged();
                          }
  
                          // stopping swipe refresh
                          swipeRefreshLayout.setRefreshing(false);
  
                      }
                  }, new Response.ErrorListener() {
              @Override
              public void onErrorResponse(VolleyError error) {
                  Log.e(TAG, "Server Error: " + error.getMessage());
  
                  Toast.makeText(getApplicationContext(), error.getMessage(), Toast.LENGTH_LONG).show();
  
                  // stopping swipe refresh
                  swipeRefreshLayout.setRefreshing(false);
              }
          });
  
          // Adding request to request queue
          MyApplication.getInstance().addToRequestQueue(req);
      }
  }
  </code></pre>