activity无法直接跳转到fragment中

本文介绍了在Android开发中,从一个Activity跳转到包含Fragment的目标Activity,并在目标Activity的不同生命周期方法中查找特定Fragment的方法。讨论了两种不同的实现方案及其优缺点,并解释了singleTask启动模式的作用。

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

(一),解决方式:
    1,从activityA跳转到fragment所在的activityB中的onResume(onStart()也可以试试),然后再activityB中选中你要找的fragment.
    但:这个有问题,返回的时候,activityB会为空
    2,
    a,从activityA跳转到fragment所在的activityB中的onNewIntent(),
     b,然后再activityB中选中你要找的fragment.
     c,并将activityB的启动模式改为singleTask(singleInstance也可以,但是用户体验不好,因为跳转的时候,会有一闪的黑屏,原因:singleInstance没开启一个activity都会新开一个栈)

    
(二)注释:
1,当一个应用中的Activity供多种方式调用启动,但是希望任务栈中只有一个Activity实例。这样就需要将这个Activity launchMode设置为singleTask。第一次打开会执行onCreate--onStart--onResume,之后如果该Activity没有被destroy,重新打开执行onNewIntent--onRestart--onStart--onResume。

  当调用到onNewIntent(intent)的时候,需要在onNewIntent()中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getIntent()都是得到老的Intent。

2,无论什么模式,只有activity是同一个实例的情况下,intent发生了变化,就会进入onNewIntent中,这个方法的作用也是让你来对旧的intent进行保存,对新的intent进行对应的处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值