App beim Booten starten / Android 8

  • 6 Antworten
  • Neuster Beitrag
O

Oxy

Ambitioniertes Mitglied
Threadstarter
Hi,

ich habe eine App, welche beim Booten automatisch gestartet wird. Dazu verwendet diese einen BroadcastReceiver:


public class BootUpReceiver extends BroadcastReceiver
{
@override
public void onReceive(Context context, Intent intent)
{
Intent i = new Intent(context, My.class);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
context.startActivity(i);
}
}


und die entsprechende Permission im Manifest:

<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

An sich funktioniert das problemlos, allerdings habe ich jetzt ein Android 8 Gerät (auf dem ich leider nicht debuggen kann), wo die App nicht mehr gestartet wird.

Meine Frage: hat sich bei dem Mechanismus unter Android 8 irgend was geändert? Oder sollte das noch so funktionieren und das liegt eher am Gerät?

Danke!

 
swa00

swa00

Moderator
Teammitglied
Zuletzt bearbeitet:
O

Oxy

Ambitioniertes Mitglied
Threadstarter
OK, danke ... und wie ist jetzt die Methode um eine App trotzdem noch automatisch starten zu lassen? Stackoverflow liefert mir auch nur Antworten auf die alte Methode...
 
swa00

swa00

Moderator
Teammitglied
Innerhalb deines Sources mit registerReceiver() -

Nachtrag : Der Reciever MUSS im LifeCycle auf unregister gesetzt werden ,
sonst gibt es Chaos.
 
Zuletzt bearbeitet:
D

deek

Stammgast
Das stimmt für den BootReceiver aber so nicht. In deinem Link steht auch, dass der ausgenommen ist von dem Problem. Man kann den ja auch schlecht zur Laufzeit registrieren...

Mach es wie hier in dieser Antwort unten, das hat bei mir immer funktioniert:
https://stackoverflow.com/a/46294732/1768839

Code:
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>

<receiver android:name=".BootReceiver" android:enabled="true" android:exported="true">
           <intent-filter>
               <category android:name="android.intent.category.DEFAULT"/>
               <action android:name="android.intent.action.BOOT_COMPLETED"/>
               <action android:name="android.intent.action.QUICKBOOT_POWERON"/>
               <!--For HTC devices-->
               <action android:name="com.htc.intent.action.QUICKBOOT_POWERON"/>
           </intent-filter>
</receiver>
 
J

jogimuc

Erfahrenes Mitglied
Hallo
An sich funktioniert das problemlos, allerdings habe ich jetzt ein Android 8 Gerät (auf dem ich leider nicht debuggen kann), wo die App nicht mehr gestartet wird.
Welches Gerät hast du?
Ich kann auf meinen "S8 mit Pie" Debuggen und auch der "Boot_Completed" Start einer App geht mit Android 9.
Auch auf dem Emulator.
 
swa00

swa00

Moderator
Teammitglied
@jogimuc

Soweit ich mich erinnern kann , hat er ein Android Device in seinem Fahrzeug ....
 
Oben Unten