런처 앱과 홈 키가 일치하지 않습니다
-
12-12-2019 - |
문제
저는 많은 활동이 포함된 런처 앱을 구축해 왔습니다.홈 키를 누르고 사용자가 내 앱을 기본 실행 프로그램으로 설정했을 때 홈 버튼이 항상 사용자를 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>
해결책
귀하가 겪고 있는 문제는 홈 교체의 주요 활동을 단일 작업으로 만들면 해결될 수 있다고 생각합니다.
그렇게 하려면 기본 활동의 일부로 매니페스트에 다음 줄을 추가합니다. launchMode="singleTask"
이것이 수행하는 작업에 대한 설명을 찾을 수 있습니다. 여기.
이제 앱이 홈 키 누르기 이벤트를 수신하고 앱이 실행되고 있지 않을 때마다 다음을 사용하여 새 인스턴스를 시작합니다. onCreate
.앱이 이미 포그라운드에서 실행 중이거나 일시 중단된 상태인 경우 onNewIntent
주요 활동에서 호출되어 앞으로 표시됩니다.
제휴하지 않습니다 StackOverflow