Android:onResume()

问题描述 投票:0回答:1

有没有办法区分两者:-

  1. 应用程序从后台运行到前台时调用的活动
  2. 从另一个活动调用的活动。

android有什么区别吗,或者我们必须实现自己的自定义逻辑(例如跟踪上一个活动)?

android android-activity mobile onresume
1个回答
0
投票

您弄错了。每当创建活动时,都在onResume之后调用onStart。每当您的活动返回时,就会调用堆栈onPause。同样,如果您的活动回到前台,则会调用onResume。因此,它不像在onResume之前调用onPause。每当活动从onPause状态返回时,都会调用onResume而不是onStartonCreate。发生这种情况是为了使Android不必一次又一次创建Activity实例,尽管这些实例没有被正确销毁。这也是相当有效的内存。


0
投票

如果从头开始创建活动(例如从另一个活动中弯曲),则会调用[生命周期回调onCreated;如果是从头开始创建并且从后台恢复,则在两个跟踪中都将调用onResume

enter image description here

如果您想知道自己的活动是从另一个活动开始的,则可以添加一点技巧。只是像这样添加一些意图:

将开始新活动的活动:

val intent = Intent(this, PSMainActivity::class.java)
intent.putExtra("CREATED_FROM_ANOTHER_ACTIVITY", true)
startActivity(intent)

在开始的活动中:

 val intentt = getIntent()
 var wasCreatedFromAnotherActivity = 
     intentt.getBooleanExtra("CREATED_FROM_ANOTHER_ACTIVITY",false)
© www.soinside.com 2019 - 2024. All rights reserved.