J'ai utilisé la méthode postéeDDelayed pour rafraîchir mon activité, ce qui fonctionne bien. Mais le problème est que même lorsque j'appuie sur la méthode postdelayed back Button, rappelez l'activité précédente.
// gestionnaire pour 30000 milli-secs Post Delay Rafraîchissement de l'activité P>
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();
}
3 Réponses :
Une solution de contournement pour cela est: p>
Lorsque vous faites la méthode Dostuff (), vérifiez si l'activité. Si c'est finissant, revenez simplement. P>
Lorsque vous reculez, l'activité sera terminée et après que la Dostuff () s'exécute, elle ne fera rien. P>
mRhandler.reMoVecallbacks (null) ;. Vous passez null comme un paramètre. Passer un onje dirigé. Cela devrait fonctionner.
Runnable runnable = new Runnable() {
@Override
public void run() {
// execute some code
}
};
Handler handler = new Handler();
handler.postDelayed(runnable, 10000);
handler.removeCallbacks(runnable);
Il doit être spécifiquement l'instance de runnable code> créé.
@dmon accepté que j'ai édité ma réponse
Vous venez d'utiliser cela, il peut vous aider
Runnable runobj=new Runnable() {
public void run()
{
dostuff();
}
};
mHandler.postDelayed(runobj, 30000);
}
public void onBackPressed()
{
super.onBackPressed();
mHandler.removeCallbacks(runobj);
}
Stackoverflow.com/q/16050807/931982 .. Dupliquer de votre propre question .. ne fais pas ça