Java 如何防止在生命周期中重新开始导航的活动,以及如何拥有多个;戈巴克“;活动?

Java 如何防止在生命周期中重新开始导航的活动,以及如何拥有多个;戈巴克“;活动?,java,android,Java,Android,1) 当我在活动a中单击RecyclerView中的某个项目时,它会将我带到另一个活动B,当我从该活动B导航回a时,a会以某种方式调用Start/onCreate以及在所有更改时滚动的RecyclerView数据。如何预防 2) 假设我有一个活动A和活动B,在这两个活动中我都有导航到活动C的按钮。当我从活动C返回时,我想确定我来自哪个活动,A或B,以导航返回。在AndroidManifest中,我只能放置一个ParentActivity,所以我不知道如何执行此操作 从B恢复活动A时将调用onSt

1) 当我在活动a中单击RecyclerView中的某个项目时,它会将我带到另一个活动B,当我从该活动B导航回a时,a会以某种方式调用Start/onCreate以及在所有更改时滚动的RecyclerView数据。如何预防

2) 假设我有一个活动A和活动B,在这两个活动中我都有导航到活动C的按钮。当我从活动C返回时,我想确定我来自哪个活动,A或B,以导航返回。在AndroidManifest中,我只能放置一个ParentActivity,所以我不知道如何执行此操作

  • 从B恢复活动A时将调用onStart()。您必须自己保存recyclerview的最后一个滚动位置。你可以参考这个

  • 不确定如何实现活动C的导航。如果在A和B中使用startActivityForResult(),则可以覆盖A和B中的onActivityResult(),以从C获取数据

  • 1) 当我在活动a的RecyclerView中单击一个项目时,它会占用我的时间 当我从另一个活动B返回时,返回到另一个活动B 对于A,A以某种方式调用onStart/onCreate和 我在所有的变化中都被滚动。如何预防

    使用
    startActivityForResult()
    而不是
    startActivity()
    启动活动B。您可以参考这个来实现它

    当我从活动B导航回A时,A以某种方式调用onStart/onCreate

    将调用
    onStart()
    ,因为在使用
    startActivity()启动活动B之后,活动A进入了onStop()

    如果操作系统面临内存压力并破坏您的活动以释放一些内存,则可能会调用
    onCreate()
    。它将在向用户显示之前重新创建它

    参考活动

    假设我有一个活动A和活动B,其中两个都有按钮 导航到活动C。当我从活动C返回时,我想 确定我来自哪个活动,A或B,以导航回

    您也可以在此处使用
    startActivityForResult()


    注意:您需要意识到
    onStartActivity()
    被提前调用的潜在问题。请参阅此

    onCreate可能会在活动之前由于内存不足而被销毁后调用