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