有没有办法区分两者:-
android有什么区别吗,或者我们必须实现自己的自定义逻辑(例如跟踪上一个活动)?
您弄错了。每当创建活动时,都在onResume
之后调用onStart
。每当您的活动返回时,就会调用堆栈onPause
。同样,如果您的活动回到前台,则会调用onResume
。因此,它不像在onResume
之前调用onPause
。每当活动从onPause
状态返回时,都会调用onResume
而不是onStart
或onCreate
。发生这种情况是为了使Android不必一次又一次创建Activity实例,尽管这些实例没有被正确销毁。这也是相当有效的内存。
如果从头开始创建活动(例如从另一个活动中弯曲),则会调用[生命周期回调onCreated
;如果是从头开始创建并且从后台恢复,则在两个跟踪中都将调用onResume
。
如果您想知道自己的活动是从另一个活动开始的,则可以添加一点技巧。只是像这样添加一些意图:
将开始新活动的活动:
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)