2012-05-03 17 views
33

Ich möchte meine App starten, wenn mein Tablet startet, so dass die Haupttätigkeit meiner App ist das erste, was der Benutzer sehen, wenn sie das Tablet starten.
Ich habe über LauncherActivity gelesen, aber ich verstehe nicht, wie man es benutzt.
Kann mir jemand mit Vorschlägen, Links oder Tutorials dazu helfen?
Ist LauncherActivity der beste Weg oder gibt es Alternativen?So starten/starten Sie die Anwendung beim Booten Android

+0

Im suchend eine ähnliche Funktionalität, wenn Sie bitte den Code mit mir gelingen teilen. – Anirudh

Antwort

69

Diese Codezeile vielleicht hilfreich für Sie ...

Schritt 1: stellen Sie die Erlaubnis in AndroidManifest.xml

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

Schritt 2: Fügen Sie diese in Empfänger Intent-Filter ist,

<receiver android:name=".BootReciever"> 
    <intent-filter > 
     <action android:name="android.intent.action.BOOT_COMPLETED"/> 
    </intent-filter> 
</receiver> 

Schritt3: Jetzt können Sie die erste Aktivität Ihrer Anwendung von onReceive-Methode der Empfängerklasse starten.

.
public class BootReciever extends BroadcastReceiver 
{ 

@Override 
public void onReceive(Context context, Intent intent) { 
    // TODO Auto-generated method stub 
    Intent myIntent = new Intent(context, Tabs.class); 
    myIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
    context.startActivity(myIntent); 
} 

} 
+1

thaks vishesh, morevor diese Schritte meine Haupttätigkeit maust erweitert LauncherActivity oder einfach Activity? –

+1

Stattdessen können Sie Empfänger verwenden, das wird gut funktionieren ... überprüfen Sie neue aktualisierte Codezeile .. –

+0

Tabs.class in Schritt 3 sollte meine Haupttätigkeit sein ??? –

11

Wenn Sie die App starten wollen, wenn die Tabletten beginnt, Sie in die BOOT_COMPLETED Aktion hören müssen und darauf reagieren. BOOT_COMPLETED ist eine Broadcast-Aktion, die einmal gesendet wird, nachdem das System gestartet wurde. Sie können diese Aktion anhören, indem Sie eine BroadcastReceiver erstellen, die dann Ihre Startaktivität startet, wenn sie eine Absicht mit der Aktion BOOT_COMPLETED empfängt.

Fügen Sie diese Erlaubnis zu Ihrem Manifest:

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

Erstellen eines benutzerdefinierten BroadcastReceiver in Ihrem Projekt:

public class MyBroadCastReceiver extends BroadcastReceiver { 

    @Override 
    public void onReceive(Context context, Intent intent) { 

     if(intent.getAction().equals(Intent.ACTION_BOOT_COMPLETED)){ 
      Intent i = new Intent(context, MyActivity.class); 
      i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
      context.startActivity(i); 
     } 
    } 
} 

Dann, indem Sie die BroadCastReceiver zum Verkünden Sie Ihre Manifest-Datei ändern:

<receiver android:name=".MyBroadcastReceiver"> 
    <intent-filter> 
     <action android:name="android.intent.action.BOOT_COMPLETED" /> 
    </intent-filter> 
</receiver> 
+1

Versucht, funktioniert nicht, nach dem Anzeigen des normalen Startbildschirms wird meine Absicht nach ca. 2 Sekunden aufgerufen. – Anirudh

2

Antwort von @vishesh chandra ist richtig. Aber auf einigen Geräten funktioniert das nicht, weil die App standardmäßig auf einem externen Speicher installiert wurde. Bitte stellen Sie sicher, dass Sie android: installLocation = "internalOnly" angeben, ansonsten erhalten Sie keine Boot-Abschluss-Aktionen, wenn die App auf der SD-Karte installiert ist. Fügen Sie dies in der Datei manifest.xml dem Anwendungs-Tag hinzu und es wird funktionieren.

0

Ich möchte einen Punkt in dieser Frage hinzufügen, die ich für einige Tage vor Augen hatte. Ich habe alle Antworten versucht, aber die haben nicht funktioniert. Wenn Sie Android Version 5.1 verwenden, ändern Sie diese Einstellungen.

Wenn Sie die Android-Version 5.1 verwenden, müssen Sie in den App-Einstellungen die Option zum Starten deaktivieren.

Einstellungen> app> App> starten einschränken (dis-select)

bitte Bild sehen.

Image

Verwandte Themen