by Anonymous » 12 Apr 2025, 04:41
Ich habe einen Vordergrundservice und ich beginne ihn von: < /p>
Code: Select all
context.startForegroundService(Intent(context, MyForegroundService::class.java))
Im Dienst verwendet es start_sticky
Code: Select all
override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
// do work...
startForeground(ID, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION)
return START_STICKY
}
< /code>
Nachdem das System den Dienst getötet hat (z. B. geringe Ressourcen), wird versucht, ihn später "aus dem Hintergrund" neu zu erstellen. Hier kommt das [url=viewtopic.php?t=20324]Problem[/url] für Anroid 12+ -Geräte:
[*] Wenn ich startforder ()
nenne, gibt es mir einen Vordergrund, den ich startnotallowedException
Wenn ich Startforder nicht nenne () . /> < /ul>
In einfachen Worten stürzt der Dienst, egal was Sie tun. Dies scheint ein Android -Designfehler zu sein. Es scheint, dass die einzige Problemumgehung darin besteht, start_not_sticky zu verwenden und einen Workmanager bei OnDestory () zu planen, um einen geringeren Teil der Arbeit zu erledigen. Denke ich das richtig?
Ich habe einen Vordergrundservice und ich beginne ihn von: < /p>
[code]context.startForegroundService(Intent(context, MyForegroundService::class.java))
[/code]
Im Dienst verwendet es start_sticky
[code]override fun onStartCommand(intent: Intent?, flags: Int, startId: Int): Int {
// do work...
startForeground(ID, notification, ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION)
return START_STICKY
}
< /code>
Nachdem das System den Dienst getötet hat (z. B. geringe Ressourcen), wird versucht, ihn später "aus dem Hintergrund" neu zu erstellen. Hier kommt das [url=viewtopic.php?t=20324]Problem[/url] für Anroid 12+ -Geräte:
[*] Wenn ich startforder () [/code] nenne, gibt es mir einen Vordergrund, den ich startnotallowedException
Wenn ich Startforder nicht nenne () . /> < /ul>
In einfachen Worten stürzt der Dienst, egal was Sie tun. Dies scheint ein Android -Designfehler zu sein. Es scheint, dass die einzige Problemumgehung darin besteht, start_not_sticky zu verwenden und einen Workmanager bei OnDestory () zu planen, um einen geringeren Teil der Arbeit zu erledigen. Denke ich das richtig?