【发布时间】:2018-07-15 12:10:30
【问题描述】:
作为主题,当我按下返回按钮时,我的应用程序会返回 2 个活动。这是 Activity 被覆盖的后退按钮:
@Override
public void onBackPressed() {
if (mainNavMenu != null && mainNavMenu.getDrawerLayout().isDrawerOpen(GravityCompat.START)) {
mainNavMenu.getDrawerLayout().closeDrawers();
return;
}
super.onBackPressed();
}
这是按下按钮之前的活动堆栈:
Task id #300
* TaskRecord{3470ba7b #300 A=com.package.example U=0 sz=3}
userId=0 effectiveUid=u0a199 mCallingUid=u0a199 mCallingPackage=com.package.example
affinity=com.package.example
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.package.example/.view.SplashScreenActivity}
realActivity=com.package.example/.view.SplashScreenActivity
autoRemoveRecents=false isPersistable=true numFullscreen=3 taskType=0 mTaskToReturnTo=1
rootWasReset=false mNeverRelinquishIdentity=true mReuseTask=false
Activities=[ActivityRecord{d9eeb4e u0 com.package.example/.view.MainActivity t300}, ActivityRecord{2017cfc8 u0 com.package.example/.view.JobDetailsActivity t300}, ActivityRecord{3da3f636 u0 com.package.example/.view.WebActivity t300}]
askedCompatMode=false inRecents=true isAvailable=true
lastThumbnail=android.graphics.Bitmap@22f31098 lastThumbnailFile=/data/system/recent_images/300_task_thumbnail.png
hasBeenVisible=true firstActiveTime=1517840356492 lastActiveTime=1517840356492 (inactive for 4s)
* Hist #2: ActivityRecord{3da3f636 u0 com.package.example/.view.WebActivity t300}
packageName=com.package.example processName=com.package.example
launchedFromUid=10199 launchedFromPackage=com.package.example userId=0
app=ProcessRecord{21ce55f9 17355:com.package.example/u0a199}
Intent { cmp=com.package.example/.view.WebActivity (has extras) }
frontOfTask=false task=TaskRecord{3470ba7b #300 A=com.package.example U=0 sz=3}
taskAffinity=com.package.example
realActivity=com.package.example/.view.WebActivity
baseDir=/data/app/com.package.example-2/base.apk
dataDir=/data/data/com.package.example
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={480dpi} labelRes=0x7f0d001f icon=0x7f0c0000 theme=0x7f0e0007
config={0 1.0 222mcc99mnc it_IT ldltr sw360dp w360dp h615dp 480dpi nrml long port finger -keyb/v/h -nav/h s.6}
resultTo=ActivityRecord{2017cfc8 u0 com.package.example/.view.JobDetailsActivity t300} resultWho=null resultCode=1117
taskDescription: iconFilename=null label="null" color=ffadd44b
launchFailed=false launchCount=1 lastLaunchTime=-4s170ms
haveState=false icicle=null
state=RESUMED stopped=false delayedResume=false finishing=false
keysPaused=false inHistory=true visible=true sleeping=false idle=true
fullscreen=true noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
waitingVisible=false nowVisible=true lastVisibleTime=-3s325ms
* Hist #1: ActivityRecord{2017cfc8 u0 com.package.example/.view.JobDetailsActivity t300}
packageName=com.package.example processName=com.package.example
launchedFromUid=10199 launchedFromPackage=com.package.example userId=0
app=ProcessRecord{21ce55f9 17355:com.package.example/u0a199}
Intent { cmp=com.package.example/.view.JobDetailsActivity (has extras) }
frontOfTask=false task=TaskRecord{3470ba7b #300 A=com.package.example U=0 sz=3}
taskAffinity=com.package.example
realActivity=com.package.example/.view.JobDetailsActivity
baseDir=/data/app/com.package.example-2/base.apk
dataDir=/data/data/com.package.example
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={480dpi} labelRes=0x7f0d001f icon=0x7f0c0000 theme=0x7f0e0007
config={0 1.0 222mcc99mnc it_IT ldltr sw360dp w360dp h615dp 480dpi nrml long port finger -keyb/v/h -nav/h s.6}
taskDescription: iconFilename=null label="null" color=ffadd44b
launchFailed=false launchCount=1 lastLaunchTime=-33s92ms
haveState=false icicle=null
state=STOPPING stopped=false delayedResume=false finishing=false
keysPaused=false inHistory=true visible=false sleeping=false idle=true
fullscreen=true noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
waitingVisible=false nowVisible=false lastVisibleTime=-32s196ms
* Hist #0: ActivityRecord{d9eeb4e u0 com.package.example/.view.MainActivity t300}
packageName=com.package.example processName=com.package.example
launchedFromUid=10199 launchedFromPackage=com.package.example userId=0
app=ProcessRecord{21ce55f9 17355:com.package.example/u0a199}
Intent { flg=0x10008000 cmp=com.package.example/.view.MainActivity (has extras) }
frontOfTask=true task=TaskRecord{3470ba7b #300 A=com.package.example U=0 sz=3}
taskAffinity=com.package.example
realActivity=com.package.example/.view.MainActivity
baseDir=/data/app/com.package.example-2/base.apk
dataDir=/data/data/com.package.example
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={480dpi} labelRes=0x7f0d001f icon=0x7f0c0000 theme=0x7f0e0007
config={0 1.0 222mcc99mnc it_IT ldltr sw360dp w360dp h615dp 480dpi nrml long port finger -keyb/v/h -nav/h s.6}
taskDescription: iconFilename=null label="null" color=ffadd44b
launchFailed=false launchCount=0 lastLaunchTime=-2m18s969ms
haveState=true icicle=Bundle[mParcelledData.dataSize=3876]
state=STOPPED stopped=true delayedResume=false finishing=false
keysPaused=false inHistory=true visible=false sleeping=false idle=true
fullscreen=true noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
waitingVisible=false nowVisible=false lastVisibleTime=-2m18s47ms
Running activities (most recent first):
TaskRecord{3470ba7b #300 A=icom.package.example U=0 sz=3}
Run #2: ActivityRecord{3da3f636 u0 icom.package.example/.view.WebActivity t300}
Run #1: ActivityRecord{2017cfc8 u0 icom.package.example/.view.JobDetailsActivity t300}
Run #0: ActivityRecord{d9eeb4e u0 icom.package.example/.view.MainActivity t300}
mResumedActivity: ActivityRecord{3da3f636 u0 icom.package.example/.view.WebActivity t300}
mLastPausedActivity: ActivityRecord{2017cfc8 u0 icom.package.example/.view.JobDetailsActivity t300}
有 3 个跑步活动。
当我按下返回按钮时,这是堆栈:
Task id #300
* TaskRecord{3470ba7b #300 A=icom.package.example U=0 sz=1}
userId=0 effectiveUid=u0a199 mCallingUid=u0a199 mCallingPackage=icom.package.example
affinity=icom.package.example
intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=icom.package.example/.view.SplashScreenActivity}
realActivity=icom.package.example/.view.SplashScreenActivity
autoRemoveRecents=false isPersistable=true numFullscreen=1 taskType=0 mTaskToReturnTo=1
rootWasReset=false mNeverRelinquishIdentity=true mReuseTask=false
Activities=[ActivityRecord{d9eeb4e u0 icom.package.example/.view.MainActivity t300}]
askedCompatMode=false inRecents=true isAvailable=true
lastThumbnail=android.graphics.Bitmap@22f31098 lastThumbnailFile=/data/system/recent_images/300_task_thumbnail.png
hasBeenVisible=true firstActiveTime=1517840391154 lastActiveTime=1517840391154 (inactive for 4s)
* Hist #0: ActivityRecord{d9eeb4e u0 icom.package.example/.view.MainActivity t300}
packageName=icom.package.example processName=icom.package.example
launchedFromUid=10199 launchedFromPackage=icom.package.example userId=0
app=ProcessRecord{21ce55f9 17355:icom.package.example/u0a199}
Intent { flg=0x10008000 cmp=icom.package.example/.view.MainActivity (has extras) }
frontOfTask=true task=TaskRecord{3470ba7b #300 A=icom.package.example U=0 sz=1}
taskAffinity=icom.package.example
realActivity=icom.package.example/.view.MainActivity
baseDir=/data/app/icom.package.example-2/base.apk
dataDir=/data/data/icom.package.example
stateNotNeeded=false componentSpecified=true mActivityType=0
compat={480dpi} labelRes=0x7f0d001f icon=0x7f0c0000 theme=0x7f0e0007
config={0 1.0 222mcc99mnc it_IT ldltr sw360dp w360dp h615dp 480dpi nrml long port finger -keyb/v/h -nav/h s.6}
taskDescription: iconFilename=null label="null" color=ffadd44b
launchFailed=false launchCount=0 lastLaunchTime=-2m54s257ms
haveState=false icicle=null
state=RESUMED stopped=false delayedResume=false finishing=false
keysPaused=false inHistory=true visible=true sleeping=false idle=true
fullscreen=true noDisplay=false immersive=false launchMode=0
frozenBeforeDestroy=false forceNewConfig=false
mActivityType=APPLICATION_ACTIVITY_TYPE
waitingVisible=false nowVisible=true lastVisibleTime=-4s367ms
Running activities (most recent first):
TaskRecord{3470ba7b #300 A=icom.package.example U=0 sz=1}
Run #0: ActivityRecord{d9eeb4e u0 icom.package.example/.view.MainActivity t300}
mResumedActivity: ActivityRecord{d9eeb4e u0 icom.package.example/.view.MainActivity t300}
mLastPausedActivity: ActivityRecord{2017cfc8 u0 icom.package.example/.view.JobDetailsActivity t300 f}
如您所见,只剩下 1 个活动,我不知道为什么会发生。
【问题讨论】:
-
尝试不使用
super.onBackPressed(); -
不行,根本回不去
-
您在开始活动时没有添加标志吗?也许您的清单中有“noHistory”?
-
清单中没有“noHistory”。如果有“noHistory”,为什么我会在堆栈中看到活动?就是这样,我不明白
标签: android android-activity stack back-button back