Create a Singelton class like :-
public class MyHandler {
private static Handler handler;
public static Handler getHandler() {
if (handler == null) {
initHandler();
}
return handler;
}
private static void initHandler() {
handler = new Handler();
handler.postDelayed(myRunnable,1000);
}
public static void stopMyHandler() {
handler.removeCallbacksAndMessages(null);
}
public static void pauseMyHandler(Runnable myRunnable) {
handler.removeCallbacksAndMessages(myRunnable);
}
public static void resumeMyHandler(Runnable myRunnable) {
handler.postDelayed(myRunnable,1000);
}
}
Use MyHandler.getHandler()
to run it and MyHandler.stopMyHandler()
to stop it in any activity.
In your Activity
class:-
@Override
public void onPause()
{
super.onPause();
MyHandler.pauseMyHandler(myRunnable);
}
@Override
public void onResume()
{
super.onResume();
MyHandler.resumeMyHandler(myRunnable);
}
Code for Runnable
that runs on UI thread:-
runOnUiThread(new Runnable() {
@Override
public void run() {
//update your UI
}
});