| |||||||
Das Thema "Uhrzeit anzeigen/updaten" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 23.03.2011
Beiträge: 29
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
| ich übe mich gerade etwas in Androidprogrammierung und habe mir überlegt, dass ich zum Üben einfach mal ein Programm mit verschiedenen Funktionen schreibe. Nun zu meinem Problem. Ich habe eine Activity "Uhrzeit anzeigen" welche über einen Button aus der MainActivity aufgerufen wird. Diese Activity soll nichts anderes machen, als immer die aktuelle Uhrzeit anzeigen. Also nicht nur die Uhrzeit, als die Activity gestartet wurde, sondern die Uhrzeit soll auch dauernd geupdatet werden (also jede Sekunde). Das updaten der Uhr realisiere ich in einem extra Thread. Problem: Wenn die Acitivity aufgerufen wird, wird auch kurz die Uhrzeit anzeigt. Danach stürzt die Activity jedoch ab. Hier mal mein SourceCode. Kann mir jemand sagen, was ich falsch mache? Code: public class UhrAnzeigen extends Activity {
TextView time;
Date currentTime;
Thread timeThread = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.uhr_anzeigen);
time = (TextView)findViewById(R.id.uhr_id_angezeigteUhrzeit);
timeThread = new Thread(){
public void run(){
while(true){
currentTime = new Date(System.currentTimeMillis());
time.setText(currentTime.toString());
try{
sleep(1000); // update every second
} catch (Exception e){
// nothing
}
}
}
};
timeThread.start();
}
} |
| | |
| | #2 (permalink) |
| Android Experte Registriert seit: 05.02.2010
Beiträge: 609
Abgegebene Danke: 75
Erhielt 136 Danke für 119 Beiträge
|
Standardproblem: Man darf UI Elemente nur aus dem UI Thread heraus verändern. (Das steht auch im Stacktrace so) Lösung: Handler benutzen. (Beispielcode gibt es in jedem zweiten Thread hier )
__________________ Kein Support via PN/eMail. Bitte das Forum benutzen - dort haben alle etwas davon. Bei Entwicklerfragen zu abstürzenden Apps bitte immer die Ausgabe von LogCat posten. Tipp: Zum "Danke" sagen gibt es einen Button. ![]() |
| | |
| | #4 (permalink) |
| Fortgeschrittenes Mitglied Modell: HTC Sensation Registriert seit: 31.08.2011
Beiträge: 390
Abgegebene Danke: 25
Erhielt 59 Danke für 57 Beiträge
|
das problem hatte ich auch schon, nur bin ich mit handler nicht weitergekommen. am einfachsten (meiner meinung nach) geht es so: entweder: Code: runOnUiThread(new Runnable() {
@Override
public void run() {
time.setText(currentTime.toString());
}
} Code: time.post(new Runnable() {
@Override
public void run() {
time.setText(currentTime.toString());
}
}); |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Cm 7 sms Uhrzeit | superchub38 | Custom-Roms für Motorola Defy | 5 | 20.10.2011 22:15 |
| Zweite Uhrzeit anzeigen lassen - und Friendstream-Widget wiederherstellen | Herr P. | HTC Desire HD Forum | 5 | 12.08.2011 21:57 |
| Uhrzeit korrigieren? | Skyliner | Motorola Defy Forum | 6 | 21.12.2010 16:28 |
| Uhrzeit in UTC | joschika77 | Android App Entwicklung | 8 | 19.08.2009 14:57 |
| falsche Uhrzeit (o2) / App zum Uhrzeit synchronisieren? | Zonk76 | T-Mobile G1 Forum | 4 | 22.04.2009 13:34 |