| |||||||
Das Thema "Service einer App wird mit GUI vom System abgeschossen" befindet sich unter Android App Entwicklung auf Android-Hilfe.de.
|
| | Themen-Optionen | Ansicht |
| | #1 (permalink) |
| Neuer Benutzer Registriert seit: 27.07.2011
Beiträge: 7
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
| meine App verwendet einige Activities sowie einen Service. Der Service soll ein solcher sein, der immer läuft und nur bei Speichermangel beendet werden soll. Wenn ich normal mit dem Home-Button auf den Startbildschirm zurückkehre, kann ich im "TaskManager" meine App noch als laufendes Programm finden. Ebenso unter Einstellungen -> Anwendungen -> laufende Dienste ist mein Service zu finden. Nach einiger Zeit kicket das Android System mein Programm aus der "Aktive Anwendungen" Liste im Taskmanager. So solls ja sein. Allerdings wird damit gleichzeitig auch mein Service gekillt. Das möchte ich aber nicht! Der soll für immer und ewig laufen, völlig unabhängig von den Activities. Hier der Code von meinem Service: Code: public class SilenceService extends Service {
private volatile boolean threadsRunning = false;
private int startId;
@Override
public IBinder onBind(Intent arg0) {
return null;
}
@Override
public void onCreate() {
Log.d("ASD", "ss start cmd");
threadsRunning = true;
Thread thread1 = new Thread(new Runnable() {
@Override
public void run() {
while (threadsRunning) {
preferences.loadFromDB();
try {
work();
// HIER WIRD GEARBEITET
Thread.sleep(preferences.getCheckintervalInSeconds() * 1000);
} catch (InterruptedException e) {
Log.d("ASD", "SERVICE SLEEP EXcEPTION");
}
}
}
});
thread1.start();
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
this.startId = startId;
return START_REDELIVER_INTENT;
}
private void stop() {
Log.d("ASD", "SERVICE stop");
stopSelf(startId);
}
@Override
public void onDestroy() {
threadsRunning = false;
Log.d("ASD", "SERVICE destroy");
super.onDestroy();
}
} Code: startService(new Intent(thisContext, SilenceService.class)); |
| | |
| | #2 (permalink) | |
| Android-Hilfe.de Mitglied |
Hallo bruegae, dein Service wird aus der Activity gestertet und beendet sich mit deiner APP. Zitat:
Wenn es eine Möglichkeit gibt dein BroadcastReceiver ewig am Start zu haben, sollte es eig. auch mit einem Service gehen. Kenn gerad die Lösung nicht, aber dein Problem sollte damit erklärt sein - StartService(..) ist nicht der passende Ansatz. regards | |
| | |
| | #3 (permalink) | |
| Fortgeschrittenes Mitglied Modell: Samsung Galaxy S und Galaxy 5 Registriert seit: 31.03.2011
Beiträge: 480
Abgegebene Danke: 35
Erhielt 89 Danke für 73 Beiträge
|
Probier es mal mit startForeground(int, Notification) Zitat:
Service | Android Developers | |
| | |
| | #4 (permalink) |
| Neuer Benutzer Registriert seit: 27.07.2011
Beiträge: 7
Abgegebene Danke: 1
Erhielt 0 Danke für 0 Beiträge
|
Also wenn ein Dienst beendet werden würde, wenn die zugehörige Anwendung beendet wird, wäre das Ganze ja irgendwie sinnlos. Das wäre ja wie wenn der Search Indexer Service von Windows nur laufen würde wenn man aktuell gerade etwas sucht. Dann wäre das ganze Dienst-Konzept ja irgendwie sinnlos? Mit startForeground habe ich es tatsächlich geschafft meinen Dienst über Nacht am Leben zu erhalten, wärend das Programm im Task Manager verschwunden ist. Auf startForeground bin ich gestern abend noch gestoßen, aber trotzdem Danke an JanF!! |
| | |
![]() |
|
| Themen-Optionen | |
| Ansicht | |
| |
| ||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Verwendung einer View in einem Service | korndi | Android App Entwicklung | 1 | 05.10.2011 01:01 |
| Programm mit Local Service wird sporadisch beendet | Fl4sh | Android App Entwicklung | 2 | 28.03.2011 00:27 |
| Download einer Datei vom Computer mit Allshare | hermez | Samsung Galaxy 3 (I5800) Forum | 1 | 25.03.2011 18:16 |
| Wird das Desire mit einer MicroSD Karte verkauft.... | pinguin74 | HTC Desire Forum | 3 | 11.01.2011 09:31 |
| Service mit GUI "verbinden" | Kirodema | Android App Entwicklung | 2 | 06.01.2011 12:31 |