Jetzt kostenlos registrieren. Mitglieder surfen ohne Werbung auf Android-Hilfe.de!
Zurück   Android-Hilfe.de > Android Developer > Android App Entwicklung

Verwendung einer View in einem Service

Das Thema "Verwendung einer View in einem Service" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.


Antwort

 

Themen-Optionen Ansicht
Alt 04.10.2011, 22:48   #1 (permalink)
Neuer Benutzer

Registriert seit: 18.10.2010
Beiträge: 28
Abgegebene Danke: 0
Erhielt 3 Danke für 3 Beiträge
Standard Verwendung einer View in einem Service

Hallo.

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);
Service:

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);
    }
Wie kann ich den Chronometer in meine Service ansteuern?

danke

Danke
korndi ist offline   Mit Zitat antworten
Alt 05.10.2011, 01:01   #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
Standard AW: Verwendung einer View in einem Service

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.
__________________
Meine App: Die Cocktail App für Android™ - jetzt im Market (PRO)
sixi ist offline   Mit Zitat antworten
Antwort

Stichworte
-

Themen-Optionen
Ansicht


Ähnliche Themen

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




Du liest gerade: "Verwendung einer View in einem Service" unter "Android App Entwicklung" auf Android-Hilfe.de.


Powered by vBulletin®
Copyright ©2000 - 2012, vBulletin Solutions, Inc.
Search Engine Friendly URLs by vBSEO
© Android-Hilfe.de 2012 - All rights reserved.