标签:android android-lifecycle android-navigation
我想问类似的问题:
Go back to previous screen without creating new instance
但是我不想让Activity A经历onCreate回调,我想在同一个状态下返回上一个实例.如何在不调用多个finish()的情况下实现这一目标?
最佳答案:
在导航应用程序时无需完成()活动.相反,您可以维护您的Activity back-stack并仍然实现您的目标.假设你有4个这样的活动:
A – > B – > C – > D.
其中D是最顶层的活动,A是根活动.如果你“退回”到活动B,那么你需要做两件事以避免碰到B的onCreate方法.
1.)使B成为“SingleTask”活动.您可以在Android Manifest中执行此操作.简而言之,这意味着在此任务中只存在B的一个“实例”.如果B在被调用时已经在运行,那么它将被简单地带到前面.这就是你如何做到的.
<activity
android:name=".ui.MyActivity"
android:launchMode="singleTask"/>
但是你不想把B带到前面.你想’退回’到B,这样你的筹码就像
A – >乙
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
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。