android 悬浮球 实现后退功能,android-“后退”按钮可重新启动活动,而无需...

我的应用程序中有一个错误,我无法弄清.共有三个活动:HomeActivity-A,TestActivity-B和ResultActivity-C.

活动A以正常方式启动B

Intent intent = new Intent(this, TestActivity.class);

startActivity(intent);

然后,活动B以相同的方式启动C.完成C后,返回到A,像这样清除堆栈

Intent intent = new Intent(this, HomeActivity.class);

intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

startActivity(intent);

现在可以无限期重复此过程,而不会出现任何问题.但是,我有一个快捷方式,允许用户通过向A发送参数,从A通过C从B开始.intent.putExtra(“ startTest”,true); A用来启动B.现在发生的是,如果我在活动B中按下返回按钮,则该活动将重新启动,而不是返回到A.

根据adb shell dumpsys的活动,该活动堆栈似乎还不错:

Activity stack:

* TaskRecord{408276f0 #60 A com.company.app}

clearOnBackground=false numActivities=3 rootWasReset=true

affinity=com.company.app

intent={act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10200000 cmp=com.company.app/.LoginActivity bnds=[120,241][240,391]}

realActivity=com.company.app/.LoginActivity

lastActiveTime=756688148 (inactive for 6s)

* Hist #12: HistoryRecord{40ab2248 com.company.app/.TestActivity}

packageName=com.company.app processName=com.company.app

launchedFromUid=10109 app=ProcessRecord{4089aed0 16527:com.company.app/10109}

Intent { cmp=com.company.app/.TestActivity }

frontOfTask=false task=TaskRecord{408276f0 #60 A com.company.app}

taskAffinity=com.company.app

realActivity=com.company.app/.TestActivity

base=/data/app/com.company.app-1.apk/data/app/com.company.app-1.apk data=/data/data/com.company.app

labelRes=0x0 icon=0x7f02000b theme=0x103000d

stateNotNeeded=false componentSpecified=true isHomeActivity=false

configuration={ scale=1.0 imsi=242/1 loc=nb_NO touch=3 keys=1/1/2 nav=1/1 orien=1 layout=34 uiMode=17 seq=22}

launchFailed=false haveState=false icicle=null

state=RESUMED stopped=false delayedResume=false finishing=false

keysPaused=false inHistory=true launchMode=0

fullscreen=true visible=true frozenBeforeDestroy=false thumbnailNeeded=false idle=true

waitingVisible=false nowVisible=true

* Hist #11: HistoryRecord{40a548e8 com.company.app/.HomeActivity}

packageName=com.company.app processName=com.company.app

launchedFromUid=10109 app=ProcessRecord{4089aed0 16527:com.company.app/10109}

Intent { flg=0x4000000 cmp=com.company.app/.HomeActivity }

frontOfTask=false task=TaskRecord{408276f0 #60 A com.company.app}

taskAffinity=com.company.app

realActivity=com.company.app/.HomeActivity

base=/data/app/com.company.app-1.apk/data/app/com.company.app-1.apk data=/data/data/com.company.app

labelRes=0x0 icon=0x7f02000b theme=0x103000d

stateNotNeeded=false componentSpecified=true isHomeActivity=false

configuration={ scale=1.0 imsi=242/1 loc=nb_NO touch=3 keys=1/1/2 nav=1/1 orien=1 layout=34 uiMode=17 seq=22}

launchFailed=false haveState=true icicle=Bundle[mParcelledData.dataSize=1192]

state=STOPPED stopped=true delayedResume=false finishing=false

keysPaused=false inHistory=true launchMode=0

fullscreen=true visible=false frozenBeforeDestroy=false thumbnailNeeded=false idle=true

按下返回按钮多少次都没有关系.堆栈保持不变,并且活动B继续重新启动.

现在到更陌生的部分:如果我双击“后退”按钮,它的确确实会返回到堆栈中,从而为我提供活动A.

我对后退按钮没有任何特殊的处理,因为在我的情况1下效果很好,但在情况2下却不行,我真的迷路了.搜索并没有真正让我有任何收获,因此任何见解都将不胜感激.

编辑

我认为这是活动中的相关内容

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值