4

私は多くのアクティビティを備えたランチャーアプリを構築してきました。ホームキーが押され、アプリがデフォルトのランチャーとして設定されている場合、ホームボタンで常にユーザーをmainActivityに戻す必要があります。これは90%の時間で機能しますが、しばらくするとホームキーが機能しなくなります。ユーザーの押下を登録しますが、メインアクティビティには戻りません。これを引き起こす原因は私を回避しました..私たちは何ヶ月もの間、ある程度の一貫性を持ってバグを再現しようとしましたが、役に立ちませんでした。何が原因で動作が停止するのかわかりません。以下は私のマニフェストです。ある種の旗か何かが足りないのではないかと思っています。

<?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>
4

1 に答える 1

4

私はあなたが抱えている問題はあなたの家の交換の主な活動を単一の仕事にすることによって解決できると信じています。

これを行うには、メインアクティビティの一部としてマニフェストに次の行を追加します。launchMode="singleTask" これが行うことの説明は、ここにあります。

これで、アプリがホームキーを押すイベントを受信し、アプリが実行されていない場合は常に、で新しいインスタンスが開始されますonCreate。アプリがすでにフォアグラウンドまたは一時停止状態で実行されている場合はonNewIntent、メインアクティビティで呼び出され、前面に表示されます。

于 2012-10-02T16:34:02.993 に答える