Android P onStart 在 onActivityResult 之前调用
Posted
技术标签:
【中文标题】Android P onStart 在 onActivityResult 之前调用【英文标题】:Android P onStart called before onActivityResult 【发布时间】:2018-11-01 04:59:27 【问题描述】:我正在试用新的android P Developer Preview,具体情况如下:
-
我用 startActivityForResult 从 Activity A 调用 Activity B
用 SetResult 结束 Activity B 并返回到 Activity A,Activity 的生命周期曾经是(在 Android P Preview 之前) :
-
onActivityResult
onStart
onResume
(这里还有一个确认此订单的帖子Execution order of OnActivityResult and OnResume)来自rndstr的回答
现在在测试 Android P 预览版时,Activity 生命周期是:
-
onStart
onActivityResult
onResume
Android 文档https://developer.android.com/reference/android/app/Activity#onactivityresult 只有说 onActivityresult 应该在 onResume 之前,它没有说明 onStart
有人可以帮忙吗?这是 Android P Preview 中的错误还是新行为?有这方面的好文档吗?
我正在使用 targetSDK:23
Activity A 是:SingleTask,Activity B 是:SingleTop
【问题讨论】:
【参考方案1】:听起来你已经回答了自己的问题!
文档说只有会调用
onActivityResult()
在onResume()
之前,它没有提到onStart()
。
onStart()
和 onStop()
仅在您的 Activity
不可见时才被调用。这意味着如果您启动另一个Activity
并且Activity
没有完全覆盖屏幕,那么您的Activity
无论如何都不会收到onStop()
、onRestart()
和onStart()
调用。因此,您不应依赖它们,也不应依赖它们被调用的顺序。
【讨论】:
以上是关于Android P onStart 在 onActivityResult 之前调用的主要内容,如果未能解决你的问题,请参考以下文章
Android:在活动中 onStart()、onStop()、onDestroy() 的开头或结尾调用 super()?
在某些 Android 设备上获取 nullPointerException onStart() 方法
com.google.android.youtube.player.YouTubePlayerSupportFragment.onStart 处的 NullPointerException(未知来源)