I used postedDelayed method to refresh my Activity, which works fine. But the problem is that even when I press the Back button postdelayed method call back the previous activity..
//handler for 30000 milli-secs post delay refreshment of the activity
mHandler.postDelayed(new Runnable() {
public void run() {
dostuff();
}
}, 30000);
}
protected void dostuff() {
Intent intent = getIntent();
finish();startActivity(intent);
Toast.makeText(getApplicationContext(), "refreshed", Toast.LENGTH_LONG).show();
}
public void onBackPressed() {
super.onBackPressed();
finish();
mHandler.removeCallbacks(null);
}
protected void onStop() {
mHandler.removeCallbacks(null);
super.onStop();
}
you just use this it may be help you
Runnable runobj=new Runnable() {
public void run()
{
dostuff();
}
};
mHandler.postDelayed(runobj, 30000);
}
public void onBackPressed()
{
super.onBackPressed();
mHandler.removeCallbacks(runobj);
}
A workaround for this is :
When doing the dostuff() method, just check whether the Activity.isFinising() and do. If it is finishing, just return.
When you back press, the activity will get finished and after that if the doStuff() executes, it will not do anything.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With