How to stop the timer after a certain time?

I have an Android app that has a timer to complete a task:

time2.scheduleAtFixedRate(new TimerTask() { @Override public void run() { sendSamples(); } }, sampling_interval, sending_interval); 

Suppose sampling_interval is 2000 and send_interval is 4000.

So, in this application, I send some read values ​​from the sensor to the server. But I want to stop sending after 10000 (10 seconds).

What should I do?

+4
source share
2 answers

to try

  time2.scheduleAtFixedRate(new TimerTask() { long t0 = System.currentTimeMillis(); @Override public void run() { if (System.currentTimeMillis() - t0 > 10 * 1000) { cancel(); } else { sendSamples(); } } ... 
+6
source

Check this code:

 private final static int DELAY = 10000; private final Handler handler = new Handler(); private final Timer timer = new Timer(); private final TimerTask task = new TimerTask() { private int counter = 0; public void run() { handler.post(new Runnable() { public void run() { Toast.makeText(MainActivity.this, "test", Toast.LENGTH_SHORT).show(); } }); if(++counter == 4) { timer.cancel(); } } }; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); timer.schedule(task, DELAY, DELAY); } 
0
source

All Articles