Frage

Ich habe eine Launcher-App mit vielen Aktivitäten erstellt.Ich möchte, dass die Home-Taste den Benutzer immer zur Hauptaktivität zurückbringt, wenn die Home-Taste gedrückt wird und meine App als Standard-Launcher festgelegt ist.Dies funktioniert in 90 % der Fälle, aber nach einiger Zeit funktioniert die Home-Taste irgendwann nicht mehr.Es registriert den Druck des Benutzers, führt ihn jedoch nicht mehr zur Hauptaktivität zurück.Welche Ursachen das hat, ist mir schleierhaft..Wir haben monatelang versucht, den Fehler mit einiger Konsequenz zu reproduzieren, aber ohne Erfolg.Wir können nicht herausfinden, warum es nicht mehr funktioniert.Unten ist mein Manifest.Ich frage mich, ob mir eine Flagge oder so etwas fehlt.

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.sapientnitro.lcinstore2"
    android:configChanges="keyboard|uiMode"
    android:versionCode="4"
    android:versionName="4.0" >

<uses-sdk android:minSdkVersion="15" />

<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES" />
<uses-permission android:name="android.permission.VIBRATE" />

<uses-feature android:name="android.hardware.camera" />

<application
    android:icon="@drawable/icon"
    android:label="@string/app_name" >
    <activity
        android:name=".activities.LCInStore2Activity"
        android:alwaysRetainTaskState="true"
        android:configChanges="orientation|keyboardHidden"
        android:label="@string/app_name"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.HOME" />
            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.MainActivity"
        android:configChanges="keyboard|uiMode"
        android:label="Main"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.MAINACTIVITY" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.Authenticate"
        android:label="Authenticate"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.AUTHENTICATE" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.Settings"
        android:label="Settings"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.SETTINGS" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.CustomerHome"
        android:label="CustomerHome"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.CUSTOMERHOME" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.CustomWebView"
        android:label="CustomWebView"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.CUSTOMWEBVIEW" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.CustomCamera"
        android:label="CustomCamera"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.CUSTOMCAMERA" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.FavoritesCustomer"
        android:label="FavoritesCustomer"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.FAVORITESCUSTOMER" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.FavoritesAssociate"
        android:label="FavoritesAssociate"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.FAVORITESASSOCIATE" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.Browser"
        android:hardwareAccelerated="true"
        android:label="Browser"
        android:screenOrientation="landscape" >

        <!-- android:theme="@android:style/Theme.NoTitleBar.Fullscreen"> -->
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.BROWSER" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.VideoViewer"
        android:label="Video Viewer"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.VIDEOVIEWER" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.GalleryOneUp"
        android:label="GalleryOneUp"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.GALLERYONEUP" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.GalleryFourUp"
        android:label="GalleryFourUp"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.GALLERYFOURUP" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.GeneralRx"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:label="GeneralRx"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.GeneralRX" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.SunglassRx"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:label="SunglassRx"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.SunglassRX" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.ComputerRx"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:label="ComputerRx"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.ComputerRX" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.NightGlassesRx"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:label="NightGlassesRx"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.NightGlassesRX" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.ActiveRx"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:label="ActiveRx"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.ActiveRX" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.SafetyRx"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:label="SafetyRx"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.SafetyRx" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.ContactRx"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:label="ContactRx"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.ContactRx" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.SettingsRx"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:label="SettingsRx"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
        android:windowSoftInputMode="stateHidden" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.SettingsRX" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>

    <receiver android:name=".SettingsReceiver" >
    </receiver>

    <activity
        android:name=".activities.CEETraining"
        android:label="@string/title_activity_ceetraining"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.CeeTraining" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.BrandTraining"
        android:label="@string/title_activity_brand_training"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.BrandTraining" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.LensTraining"
        android:label="@string/title_activity_lens_training"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.LensTraining" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.MakeAbility"
        android:label="@string/title_activity_makeability"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.Makeability" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
    <activity
        android:name=".activities.MakeabilityResults"
        android:label="@string/title_activity_makeability_results"
        android:screenOrientation="landscape"
        android:theme="@android:style/Theme.NoTitleBar.Fullscreen" >
        <intent-filter>
            <action android:name="com.sapientnitro.lcinstore2.activities.Makeabilityresults" />

            <category android:name="android.intent.category.DEFAULT" />
        </intent-filter>
    </activity>
</application>

</manifest>
War es hilfreich?

Lösung

Ich glaube, dass das Problem, das Sie haben, gelöst werden kann, indem Sie die Haupttätigkeit Ihres Home-Replacements zu einer einzigen Aufgabe machen.

Dazu würden Sie im Rahmen der Hauptaktivität die folgende Zeile zu Ihrem Manifest hinzufügen: launchMode="singleTask" Eine Beschreibung dessen, was dies bewirkt, finden Sie hier Hier.

Wenn Ihre App jetzt ein Home-Tastendruck-Ereignis empfängt und die App nicht ausgeführt wird, startet sie eine neue Instanz mit onCreate.Wenn die App bereits im Vordergrund läuft oder sich im angehaltenen Zustand befindet, onNewIntent wird in Ihrer Haupttätigkeit aufgerufen und in den Vordergrund gerückt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top