| |||||||
Das Thema "Verwendung einer View in einem Service" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 18.10.2010
Beiträge: 28
Abgegebene Danke: 0
Erhielt 3 Danke für 3 Beiträge
| Ich habe ein TimerService und möchte gerne in der onTick Methode in einem Chronometer die Zeit herunterzählen. Ohne Service hat es bestends geklappt. Mein Code Aufruf: Code: Intent i = new Intent(Timer.this,TimerService.class);
i.putExtra("ms", ms);
startService(i); Code: public class TimerService extends Service{
CountDownTimer timer;
Chronometer clock;
@Override
public IBinder onBind(Intent intent) {
return null;
}
public void setClock (Chronometer cron)
{
this.clock = cron;
}
@Override
public void onStart(Intent intent, int startId) {
// TODO Auto-generated method stub
int ms = intent.getIntExtra("ms", 0);
timer = new CountDownTimer(ms,1000){
@Override
public void onTick(long millisUntilFinished) {
int seconds = (int) (millisUntilFinished / 1000) % 60 ;
int minutes = (int) ((millisUntilFinished / (1000*60)) % 60);
int hours = (int) ((millisUntilFinished / (1000*60*60)) % 24);
clock.setText( String.format("%02d:%02d:%02d", hours,minutes,seconds));
Log.e("Timer", String.valueOf(millisUntilFinished));
}
@Override
public void onFinish() {
// TODO Auto-generated method stub
}
}.start();
super.onStart(intent, startId);
} danke Danke |
| | |
| | #2 (permalink) |
| Erfahrener Benutzer Modell: G1 DevPhone / SGS2 / SGT10.1v Registriert seit: 20.01.2009
Beiträge: 238
Abgegebene Danke: 7
Erhielt 50 Danke für 47 Beiträge
|
Aus dem Service heraus solltest du das eher nicht tun: der Service (liegt in der Natur von einem Service) kann unabhängig von jeglicher UI laufen, d.h. es ist nicht garantiert, dass es irgendwelche grafischen Elemente gibt, die du aktualisieren kannst. Es gibt zwei (bestimmt noch mehr ^^) Lösungswege: Du benutzt einen Broadcast Receiver in der Activity, welcher die Änderungen, die vom Service kommen entgegennimmt und diese in der UI anzeigt - oder du gehst über die "Application" - also nimmst eine Klasse die davon erbt. Diese existiert quasi immer (also der Context der Application, auch wenn "nur" der Service läuft) - und deligierst von da aus die Änderungen an die Activity weiter, die die UI Elemente enthält. |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Welche Docking Station bei Verwendung einer Silikonhülle | baloo-the-bear | Zubehör für Samsung Galaxy S2 | 56 | 28.11.2011 14:14 |
| TouchEvents die in einem View beginnen in einem anderen aufgreifen | hefeweiz3n | Android App Entwicklung | 0 | 23.09.2011 14:59 |
| in einem onClickListener -> neue View anzeigen | mr.freeze | Android App Entwicklung | 4 | 09.02.2011 11:50 |
| Problem beim Aufruf einer Activity aus einem Service | Chri | Android App Entwicklung | 7 | 20.02.2010 12:29 |
| KEYCODE_BACK in einer View abfangen | DocJunioR | Android App Entwicklung | 3 | 18.07.2009 19:30 |