CountDownTimer dans Android
Je suis la mise en œuvre de compte à rebours, mais sa ne fonctionne pas pour moi. Ci-dessous est le code.
package FinalProj.com;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import android.os.CountDownTimer;
public class iFallApp extends Activity{
public TextView textView1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//TextView textview = new TextView(this);
//textview.setText("This is the iFall tab");
//setContentView()
setContentView(R.layout.ifallapp);
textView1=(TextView) findViewById(R.id.textView1);
MyCount counter = new MyCount(5000,1000);
counter.start();
}
public class MyCount extends CountDownTimer{
public MyCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);
}
iFallApp app1 = new iFallApp();
@Override
public void onFinish() {
//TODO Auto-generated method stub
textView1.setText("done");
}
@Override
public void onTick(long millisUntilFinished) {
//TODO Auto-generated method stub
textView1.setText((int) (millisUntilFinished/1000));
}
}
}
Exactement comment est-elle défaillante?
Après le lancement de l'application s'arrête... il y a un problème avec onTick méthode... si j'en commentaire puis l'application fonctionne très bien...
Après le lancement de l'application s'arrête... il y a un problème avec onTick méthode... si j'en commentaire puis l'application fonctionne très bien...
OriginalL'auteur tech_learner | 2011-05-07
Vous devez vous connecter pour publier un commentaire.
C'est cette ligne à l'origine du problème;
Ce que vous faites, c'est de définir un id de ressource pour textView1, tout ce que vous recherchez est quelque chose comme;
Aussi la ligne;
Est plutôt suspect. L'enlever au cas où avant de vous retrouver à l'aide accidentellement. Vous avez votre iFallApp créé par Android cadre déjà, et vous pouvez passer à l'aide de
this
à la place si nécessaire.OriginalL'auteur harism
Un heads-up pour tout les autres développeurs suite à cela comme un exemple, mais cachent leur chronomètre dans sa propre racine de la classe. Le passage d'un TextView dans le CountDownTimer instance va entraîner une fuite de mémoire si vous n'avez pas nettoyer soigneusement les références. Ce sera évident après la rotation de l'écran une demi-douzaine de fois, votre application va se planter avec une OutOfMemoryError comme le faisait la mine.
Ajouter une méthode à votre CountDownTimer comme ça, et de l'appeler à chaque fois que onDestroy()/onDestroyView() dans la possession d'Activité/Fragment est appelé.
OriginalL'auteur Jargo
En général, vous devriez être en mesure de regarder la
adb logcat
sortie pour déterminer ce qui ne va pas.Sur le dessus de ma tête, je dirais que le
textView1
variable n'est pas définie correctement et est null.Aussi, je voudrais commencer le compte à rebours dans le
onResume()
fonction, pas laonCreate()
fonction.OriginalL'auteur Femi