Service der auf Internet zugreift

ronny130286

ronny130286

Fortgeschrittenes Mitglied
24
Hallo

ich habe mir einen App gebaut die einen Service enthält und nach Zeit X im Internet nachschaut ob es etwas neues gibt (RSS Feeds).

Das funktioniert auch super nur jetzt bin ich darüber gestolpert, was passiert wenn man einen Internetverbindung hat.

Momentan stürtzt dann meine App ab => wie kann ich das umgehen?
 
Code:
public boolean isOnline() 
    {
        ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo netInfo = cm.getActiveNetworkInfo();
        if (netInfo != null && netInfo.isConnectedOrConnecting()) 
        {
            return true;
        }
        return false;
    }

Und natürlich: <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

OT: Zu Deiner Signatur: Nein, es gibt keine dummen Fragen, aber Fragen, die man im Internet (z.B. durch Google) leicht beantworten lassen...:flapper:
 
  • Danke
Reaktionen: ronny130286
Wenn du auf die Berechtigung verzichten möchtest, kannst du auch einfach die Exception abfangen.
und dann den Fall halt behandeln.

Dann versuchst deine App zwar vielleicht eine Verbindung aufzubauen und sollte dann einen timeout bekommen, den du abfangen kannst.

Fertig.
Exceptions werden ja nicht nur zum Spaß geschmissen ;)
 
Ich glaube ich werde es mit dem timeout auch so machen, sollte ja reichen, weil hab jetzt mal die Abfrage eingebaut aber seit dem verursacht meine APP einen relative hohen Akkudrain:what:
 
Wie oft rufst du denn den RSS Feed ab?
Besser wäre es eigentlich immer neuigkeiten zu pushen.

Das ist natürlich gerade bei einem RSS Feed aufwendiger.
 
naja eigentlich rufe ich die RSS Feeds nur aller Std ab aber irgendwas scheint da was komisch zu sein, weil vorher hat die App eigentlich fast nix verbraucht und jetzt zieht sie mehr als das System selbst

@Edit:
da ich die Rss Feed über einen Asyctask machen, habe ich einfach beim abfragen einen Try catch Methode genommen, somit ist der Fehler abgefangen und gut, jetzt muss ich nur noch testen wie es sich mit dem Drain verhält
 
Zuletzt bearbeitet:
Du kannst auch TimeOuts in der App setzten.

Ein mal, wie lange die App versuchten soll, eine Verbindung auf zu bauen.
setConnectTimeout(int time) für HttpURLConnection oder
HttpConnectionParams.setConnectionTimeout(httpParameters, timeoutConnection) für HttpClient

Und dann, wie lange die App maximal Daten lesen soll
setReadTimeout(int time) oder
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket)

So kannst du einfach die Verbindung unterbrechen, wenn die Verbindung zu schlecht ist. Und du muss nicht warten, bis die Verbindung ein Exception wirft. Spart Akku.

Bei einem Feed reicht es alle 20 - 30 Minuten neu zu laden. Kürzer würde ich nicht gehen, dann füge lieber ein Reload - Button ein.
 
Die App hat einen solche Funktion schon mit dem Reloadbutton, aber ich kann die App auch einstellen das ich eine Notifationmessage bekomme und die habe ich über eine PrefActiviy gemacht wo sich der User aussuchen kann in welchem Abständen er nach neues Feeds sucht alle 15min, 30min, 1std ....

setConnectTimeout(int time) für HttpURLConnection oder
HttpConnectionParams.setConnectionTimeout(httpPara meters, timeoutConnection) für HttpClient

Und dann, wie lange die App maximal Daten lesen soll
setReadTimeout(int time) oder
HttpConnectionParams.setSoTimeout(httpParameters, timeoutSocket)
Das werde ich mir mal ansehen
 
Auch hier würde ich wieder nen sync Adapter nehmen ^^

LG. Dagobert

Gesendet von meinem GT-I9300 mit der Android-Hilfe.de App
 

Ähnliche Themen

M
Antworten
3
Aufrufe
169
moin
M
M
  • MikelKatzengreis
Antworten
5
Aufrufe
133
swa00
swa00
Zurück
Oben Unten