2016-07-14 16 views
0

Ich denke daran, eine App zu erstellen, die mit einer Web-API interagiert.Wie geht das am besten in Android?

Voraussetzung:

  1. die Wette und Display-Benachrichtigung starten
  2. Senden Sie die Wette auf die Website über POST.
  3. Wenn das Ergebnis eintrifft, aktualisieren Sie die Benutzeroberfläche mit dem Ergebnis.
  4. Wenn der Benutzer die Stopp-Taste nicht gedrückt hat, kehren Sie zu # 2 zurück, sonst stoppen Sie den Einsatz und entfernen Sie die Benachrichtigung.
  5. Wenn die App geschlossen ist oder nicht die aktive Anwendung, würden die Wetten noch
  6. fortsetzen Wenn die Benachrichtigung geklickt wird, Show/Start die App

Nach vieler Forschung und Lesen dachte ich, dass der gebundene Vordergrund Dienst würde dies erreichen, aber ich kann meine Fragen (ich verstehe einfach nicht, oder vielleicht), wie es zu tun ...

Hier sind nicht gefunden:

Wenn ich einen Dienst machen und stelle th Die Logik des Wettens darin, würde meine Tätigkeit/APP den Service beginnen und mit ihm binden.

  1. Wie kann ich dem Service erklären, um mit den ursprünglichen Einsatzdaten von der Tätigkeit zu beginnen zu wetten?
  2. Wie kann der Dienst wissen, wenn die App geschlossen wird oder ist die aktive App nicht auf dem Bildschirm?
  3. Wie kann der Dienst die Benutzeroberfläche der App aktualisieren?

Ich werde immer noch nach einer möglichen Möglichkeit suchen, dies zu tun. Ich hoffe, dass jemand mich auf den rechten Weg führen kann ..

aktualisiert

(3) endete ich die App-Komponenten aus dem Dienst der Verwendung LocalBroadcast bis zu signalisieren, wenn die Benutzeroberfläche zu aktualisieren.

(2) Unter Verwendung von LocalBroadcast dachte ich, dass mein Dienst den Zustand meiner App nicht stört.

(1) Ich verwendete Bound Service und rufen Sie einfach Methode auf dem Dienst, um Daten zu übergeben und Wetten zu starten.

+0

-ve Wähler, er zur Klärung und Führung bittet ... –

+1

downvote Whe? Atleast sagen Sie mir den Grund für den Downvote ... –

+0

Versuchen Sie, die Dokumentation zu lesen @ https://developer.android.com/guide/components/services.html – JoxTraex

Antwort

1

Sie Daten über Intent Service senden: https://stackoverflow.com/a/15899750/3423468

Intent serviceIntent = new Intent(YourService.class.getName()); 
serviceIntent.putExtra("data", "123456"); 
context.startService(serviceIntent); 

dann in Service OnStartCommand Methode außer Kraft setzen:

public int onStartCommand (Intent intent, int flags, int startId) 
{ 
    String userID = intent.getStringExtra("data"); 
    return START_STICKY;//or non-sticky 
} 

Für App schließen Event-Handling Sie diese Antwort überprüfen (verwendet mich nie) : https://stackoverflow.com/a/26882533/3423468

Und in Bezug auf Ihre letzte Frage, y ou kann use BroadcastReciever to send data from service to activity and update UI

Weitere Lektüre dieses Links überprüfen:

  1. Services Tutorials
  2. Official Developers Guide To Services
  3. BroadCastReceivers Tutorial
+0

Danke ... Ich werde das ausprobieren und die Artikel, die du verlinkt hast, noch einmal lesen. Die meisten Artikel auf der Android Developer-Website sind ein bisschen schwer für mich, um es gründlich zu verstehen ... –

+0

Take a Schau und frag mich, ob du etwas brauchst. Ich gebe Ihnen meine eigenen Beispiele, kann aber nicht gut in Java schreiben, ich bin Xamarin Entwickler. – arsena

+0

arbeiten Zuhörer für den Service? Ich denke daran, meinem Dienst einen Zuhörer zu geben, dass meine Aktivität Daten durch dieses Ereignis implementiert und weiterleitet. –

0

Verwenden Volley api. Fügen sie als abhängig in build.gradle

dependencies { 
    compile 'com.android.support:design:+' 
    compile 'com.android.support:appcompat-v7:+' 
    compile 'com.android.volley:volley:+' 
    compile fileTree(dir: 'libs', include: ['*.jar']) 
} 
Verwandte Themen