Prozess im Hintergrund starten ??

  • 5 Antworten
  • Letztes Antwortdatum
Z

zblack

Gast
Hallo Android Freunde,
ich habe eine Frage:
ich möchte in meiner App Folgendes tun: die App soll z.b alle 5 Minuten im Hintergrund eine Internetseite aufrufen (ohne sichtbar zu werden) und nur im Fall, wenn auf der Webseite irgendwas geändert wurde, soll eine Meldung auf dem Bildschirm des Handys erscheinen z.b: „HALLO WELT“. Dieses Verhalten soll erfolgen auch im Fall, wenn die App nicht ausgeführt wird (also wenn der Benutzer auf das Icon der App noch nicht geklickt hat). Doch leider habe ich überhaupt keine Ahnung wie das realisiert werden kann. Kann mir jemand helfen? MfG.
 
Service
http Client
Und anstatt die ganze Seite zu analysieren kannst du auch nur wenn vorhanden das aenderunsdatum abrufen und dann prüfen ob es geupdatet wurde die ganze Seite zu laden braucht viel zu viele Ressourcen

Gesendet von meinem GT-S5660 mit der Android-Hilfe.de App
 
jetzt habe ich noch ein problem:
die service klasse sieht bei mir jetzt so aus:
Code:
public class AbfrageService extends Service {

    private NotificationManager notificationManager;
    private Notification notification;
    private String notiftext;
    private int anzahlauftraege;
    private int anzahlmessage;
    private PendingIntent pendingIntent;
    private Intent intent;
    private static final String TAG = AbfrageService.class.getSimpleName();
    private Timer timer;
    private Context context;
    private TimerTask updateTask = new TimerTask() {
        
        @Override
        public void run() {
            Log.e(TAG, "TIMER IS RUNNING");
        }
    };

    @Override
    public void onCreate() {
        super.onCreate();
        Log.e(TAG, "AbfrageService erstellt");
        timer = new Timer("AbfrageTimer");
        timer.schedule(updateTask, 1000L, 60 * 1000L);
        


    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.e(TAG, "!!!Service beendet");
        timer.cancel();
        timer = null;
    }

    @Override
    public IBinder onBind(Intent intent) {
        return null;
    }

}
ich starte den Service in der anderen Klasse mit dem Aufruf: startService(new Intent (AbfrageService.class.getName())); Und in einer anderen Klasse habe ich ne Funktion in der ich das vorhanden sein der Verbindung überprüfe. DIese Funktion benötigt den Context und ermittelt es auch beim Aufruf. Wenn ich die Funktion in meinem Service aufrufe, verabschiedet sich die App mit der Nullpointer da die kein Context besitzt. in der Manifest ist Service wie folgt definiert:
Code:
 <service android:name="AbfrageService" android:process=":remote" android:exported="false">
            <intent-filter>
        <action
          android:name="de.test.AbfrageService" />
      </intent-filter>
      </service>
wie soll ich weiter vorgehen ? BITTE HILFE
 
Zuletzt bearbeitet von einem Moderator:
Nimm einfach this - Service leitet von Context ab.

Gesendet von meinem MB525 mit Tapatalk 2
 
meine Idee war folgende:
ich erstelle eine einfache App mit leerem Bildschirm. Die App startet bei der Ausführung ein Prozess (zb mithilfe des Services oder auch andres) welches eine Operation im Hintergrund ausführt. Wenn der Benutzer die App zb. mit dem Klicken der Hometaste verlässt, (die App ist ja dann nicht zu sehen) soll der Prozess immer noch im Hintergrund ausgeführt werden, solange der Benutzer die App im Taskmanager des Handys nicht beendet.
Genau das versuche ich zu realisieren. Vlt habe ich schon zu viel gegooglet oder was Falsches gefunden, oder ich denke wieder zu kompliziert aber ich komm nicht weiter.
 
Auf welche Art verbindest du dich mit dem Service? Dein onBind liefert null zurück.
 

Ähnliche Themen

D
Antworten
5
Aufrufe
595
swa00
swa00
Zurück
Oben Unten