Android 方向改变时的getIntent()-如何处理?

Android 方向改变时的getIntent()-如何处理?,android,Android,这感觉像是一个noob问题,但在Android中,当方向改变时,活动被销毁并重新创建,onCreate()被重新调用。内部状态可以通过savedInstanceState包保存。到目前为止还不错 但在我的应用程序中,我有一个活动,它通常通过startActivityForResult()从另一个活动调用,该活动传入一系列参数。在onCreate()中,目标活动执行getIntent()来检索传入的数据。问题是,当该活动出现在屏幕上时,我翻转方向,它就会崩溃。它在onCreate()代码中崩溃,调

这感觉像是一个noob问题,但在Android中,当方向改变时,活动被销毁并重新创建,onCreate()被重新调用。内部状态可以通过savedInstanceState包保存。到目前为止还不错

但在我的应用程序中,我有一个活动,它通常通过startActivityForResult()从另一个活动调用,该活动传入一系列参数。在onCreate()中,目标活动执行getIntent()来检索传入的数据。问题是,当该活动出现在屏幕上时,我翻转方向,它就会崩溃。它在onCreate()代码中崩溃,调用getIntent()。我认为它崩溃是因为没有什么可“获取”的,因为在这种情况下,它是从系统而不是从其他活动调用的


正确的处理方法是什么?如何判断何时由于方向更改而调用onCreate(),以便不尝试调用getIntent()?还是我只是想错了?提前感谢。

您可以将通过
getIntent()
方法获得的详细信息保存在savedInstanceState中。这意味着,在
onSaveInstanceState(Bundle)
中,使用
getIntent()
存储在
onCreate()中使用的信息。新创建
活动时,在
onCreate(Bundle savedInstanceState)
方法中,Bundle
savedInstanceState
为空。因此,如果Bundle
savedInstanceState
为空,则可以在
onCreate(Bundle savedInstanceState)
中设置检查条件,这意味着您需要使用
getIntent()获取数据
否则,如果其不为null,则表示发生了某些方向更改,您需要使用
savedInstanceState
包获取数据