Countdown-Timers in Android
Ich die Umsetzung countdown-timer, sondern seine nicht funktioniert für mich. Unten ist der 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));
}
}
}
Wie genau ist das Fehlverhalten?
Nach dem Start der Anwendung wird beendet... es gibt einige problem mit der onTick-Methode... wenn ich den Kommentar dann die Anwendung funktioniert gut...
Nach dem Start der Anwendung wird beendet... es gibt einige problem mit der onTick-Methode... wenn ich den Kommentar dann die Anwendung funktioniert gut...
InformationsquelleAutor tech_learner | 2011-05-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist diese Zeile das problem verursacht;
Was Sie tun, ist eine Ressource-id textView1, während das, was Sie suchen, ist etwas, wie;
Auch Linie;
Ist eher misstrauisch. Entfernen Sie es nur für den Fall, bevor Ihr es versehentlich. Sie haben Ihre iFallApp erstellt von Android-framework bereits, und man kann es mit
this
statt, wenn nötig.InformationsquelleAutor harism
Einem heads-up für alle anderen Entwickler Folgen diesem als Beispiel, aber haben abstrahiert, Ihr Timer in seine eigene toplevel-Klasse. Die übergabe eines TextView in den CountDownTimer-Instanz wird in einem Speicherverlust, wenn Sie nicht sorgfältig reinigen Sie die Referenzen. Dies wird offensichtlich, nach dem drehen des Bildschirms ein halbes Dutzend mal, die app crash mit einem OutOfMemoryError wie es meiner gemacht hat.
Fügen Sie eine Methode, um Ihre Countdown-Timers wie diese, und nennen Sie es, Wann immer onDestroy()/onDestroyView() in den Besitz Activity/Fragment genannt wird.
InformationsquelleAutor Jargo