How can I loop that time() function on the onCreate every 5 seconds.. help me I\'m a newbie in Android =) ... I want to execute time() function in onCreate every 5 seconds.<
Handler handler = new Handler();
Runnable runnable = new Runnable() {
@Override
public void run() {
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
if (activefragment == null)
{
fragmentTransaction.remove(activefragment);
} else
{
fragmentTransaction.replace(R.id.fragmentContainer, activefragment, activefragment.getTag());
fragmentTransaction.disallowAddToBackStack();
}
fragmentTransaction.commit();
}
};
handler.postDelayed(runnable, timeout);
Here's a simple way to do it in Kotlin.
private lateinit var timer: Timer
private val noDelay = 0L
private val everyFiveSeconds = 5000L
override fun onResume() {
super.onResume()
val timerTask = object : TimerTask() {
override fun run() {
runOnUiThread { /* your code here */ }
}
}
timer = Timer()
timer.schedule(timerTask, noDelay, everyFiveSeconds)
}
override fun onPause() {
super.onPause()
timer.cancel()
timer.purge()
}
You could use a handler, given example would call yourfunction() every second
// Init
private Handler handler = new Handler();
private Runnable runnable = new Runnable() {
@Override
public void run() {
yourfunction();
handler.postDelayed(this, 1000);
}
};
//Start
handler.postDelayed(runnable, 1000);
Try to do like this ! just replace your code in startTimer method. It should work..
private Timer timer;
private TimerTask timerTask;
private Handler handler = new Handler();
//To stop timer
private void stopTimer(){
if(timer != null){
timer.cancel();
timer.purge();
}
}
//To start timer
private void startTimer(){
timer = new Timer();
timerTask = new TimerTask() {
public void run() {
handler.post(new Runnable() {
public void run(){
//your code is here
}
});
}
};
timer.schedule(timerTask, 5000, 5000);
}