1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. KianS, 30.09.2010 #1
    KianS

    KianS Threadstarter Neuer Benutzer

    Hi zusammen,

    ich öffne mal hier ein neues Thread , da ich probleme habe mit der Kommunikation zwischen "Service" zur "Activity"

    was habe ich :
    Ich habe ein Download einer FTP Datei, die im Hintergrund als Service runtergeladen wird! am ende habe ich eine Zeit X in einer Variabel.
    desweiteren wird geprüft ob die Datei auch vollständig geladen wird indem ich ein einfachen Vergleich der Datengröße mache.


    also ich habe eine Zeit 0s"anfangszeit" 12:22:00 die bis z.B. 20sek geht "endzeit" 12:22:20
    und eine Download Größe die von 0Kb bis 5000Kb geht.

    Diese Werte werden im Service festgelegt.


    Vorhaben:

    Ich möchte dies Grafisch im GUI der Activity anzeigen lassen.


    Dateidownload zeit : X sekunden
    X sekunden , soll nach und nach abgetastet werden und dynamisch angezeigt werden. 1. sec , 2, sec ...... 20 sec.

    Download traffic : X kb of 5000 kb


    Download rate soll angezeigt werden : 0kb, 250 kb, 500 kb ..... 5000 kb .




    Nun meine Frage :

    wie mache ich das, das der Service diese Werte an die Activity weitergibt !
    und wie kann ich es in der activity "dynamisch und automatisch" anzeigen lassen.




    Ich danke jedem der mir hilft.
     
  2. MetBo, 30.09.2010 #2
    MetBo

    MetBo Fortgeschrittenes Mitglied

    Probiere es mal mit der ProgressBar oder ProgressDialog.

    Diese Elemente kannst du nach deinen Wünschen modifizieren und auch dynamisiern. Zusätzlich wird das ganze in einen Thread ausgelagert, damit auch deine GUI während des Ladens ansprechbar bleibt.

    Auf der Developer.Google Seite findest du einige gute Beispiele. Hier im Forum bestimmt auch.

    Dies ist nur ein Vorschlag.
     
  3. Unicate, 01.10.2010 #3
    Unicate

    Unicate Android-Experte

    Also ich würde das mit einem normalen Callback machen.
    Dazu sind die doch da oder?

    Das hier in deine Service AIDL damit du den Callback in deinem Service registrieren kannst.
    Code:
         void registerCallback(ServiceCallback callback);
         void unregisterCallback();
    
    Dann noch eine AIDL für den Callback erstellen:

    Sowas in der Richtung:
    PHP:
    interface ServiceCallback {
        
        
    void updateProgress(long progress);
    }
    Dann ServiceCallback in deiner Activity implementieren
    und nach dem der Service verbunden ist den callback registrieren. bei disconnect, natürlich wieder "unregistern"

    Die ServiceConnection der Activity sieht dann in etwa so aus:
    PHP:
        private ServiceConnection _connection = new ServiceConnection() {
            
            @
    Override
            
    public void onServiceDisconnected(ComponentName arg0) {
                if(
    null != _service) {
                    try {
                        
    _service.unregisterCallback();
                    } catch (
    RemoteException e) {}
                    
    _service null;                
                    
    Log.d(TAG"Service disconnected!");
                }
            }
            
            @
    Override
            
    public void onServiceConnected(ComponentName arg0IBinder service) {
                if(
    service != null && null == _service) {
                    
    _service ServiceBinder.Stub.asInterface(service);
                    
    Log.d(TAG"Service connected!");
                    try {
                        
    _service.registerCallback(_callback);
                    } catch (
    RemoteException e) {
                        
    Log.w(TAGe);
                    }
                }
            }
        };
    Hab ich jetzt auch nur von meiner App kopiert, funktioniert da aber bestens.

    Wenn ich zu hause bin könnte ich dir mal meinen "VanillaRemoteService+Callback" schicken, da sind nur Service und Callback implementiert
     
    Zuletzt bearbeitet: 01.10.2010
  4. KianS, 04.10.2010 #4
    KianS

    KianS Threadstarter Neuer Benutzer

    dankeschön
     
Die Seite wird geladen...
Ähnliche Themen Forum Datum
[ERLEDIGT] Bitmap von Activity an Activity übergben Android App Entwicklung 03.09.2017
[OFFEN] Activity als Dialog - RecyclerView funktioniert nicht mehr Android App Entwicklung 14.08.2017
[ERLEDIGT] Probleme mit Service unter Android N Android App Entwicklung 16.07.2017
[ERLEDIGT] Hilfe bei Fehler in Quellcode benötigt Android App Entwicklung 23.06.2017
[ERLEDIGT] RFID Karten Kommunikation? Android App Entwicklung 18.06.2017
[OFFEN] Problem mit meiner Login App Android App Entwicklung 10.06.2017
[GELÖST] Nach AS Update Fehler Error running app: Default Activity not found Android App Entwicklung 16.05.2017
[GELÖST] Übergabe an zweite Activity Android App Entwicklung 11.05.2017
[OFFEN] Service wird bei manchen Geräten nicht gestartet Android App Entwicklung 09.04.2017
[ERLEDIGT] Problem beim Starten einer neuen Activity Android App Entwicklung 21.03.2017
Du betrachtest das Thema "Kommunikation von Service auf Activity !" im Forum "Android App Entwicklung",