android返回上一个activity 但不重新加载,android – 返回Activity而不重新创建(不调用onCreate())...

本文介绍如何在Android应用中,通过设置Activity为单任务模式并使用Intent的FLAG_ACTIVITY_CLEAR_TOP标志,避免onCreate回调,实现在不多次调用finish()的情况下回到上一个活动实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我想问类似的问题:

但是我不想让Activity A经历onCreate回调,我想在同一个状态下返回上一个实例.如何在不调用多个finish()的情况下实现这一目标?

最佳答案:

在导航应用程序时无需完成()活动.相反,您可以维护您的Activity back-stack并仍然实现您的目标.假设你有4个这样的活动:

A – > B – > C – > D.

其中D是最顶层的活动,A是根活动.如果你“退回”到活动B,那么你需要做两件事以避免碰到B的onCreate方法.

1.)使B成为“SingleTask”活动.您可以在Android Manifest中执行此操作.简而言之,这意味着在此任务中只存在B的一个“实例”.如果B在被调用时已经在运行,那么它将被简单地带到前面.这就是你如何做到的.

android:name=".ui.MyActivity"

android:launchMode="singleTask"/>

但是你不想把B带到前面.你想’退回’到B,这样你的筹码就像

A – &GT乙

2.)将此标志添加到“开始”B的意图中.这样可确保删除C和D.

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

现在当’D’将新的Intent调用到B时,B将被恢复,C和D将被删除. B将不会被重新创建,它只会调用onNewIntent.

标签:android,android-lifecycle,android-navigation

来源: https://codeday.me/bug/20190516/1115710.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值