gpt4 book ai didi

android - getIntent() 当方向改变时 - 如何处理?

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:34:54 24 4
gpt4 key购买 nike

这感觉像是一个菜鸟问题,但在 Android 中,当方向改变时,Activity 被销毁并重新创建,并且 onCreate() 被重新调用。内部状态可以通过 savedInstanceState 包保存。到目前为止一切顺利。

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

处理此问题的正确方法是什么?我如何判断我的 onCreate() 何时因方向更改而被调用,以便我不尝试调用 getIntent()?还是我只是在想这个错误?提前谢谢你。

最佳答案

您可以将通过 getIntent() 方法获取的详细信息保存在 savedInstanceState 中。这意味着,在您的 onSaveInstanceState(Bundle) 中使用 getIntent() 存储您在 onCreate() 中使用的信息。当您的 activity 是新创建的时,在 onCreate(Bundle savedInstanceState) 方法中,bundle savedInstanceState 为空。因此,您可以在 onCreate(Bundle savedInstanceState) 中检查条件,如果 Bundle savedInstanceState 为 null,则意味着您需要使用 getIntent() 获取数据 否则,如果它不为空,则意味着方向发生了一些变化,您需要使用 savedInstanceState 包获取数据。

关于android - getIntent() 当方向改变时 - 如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17281925/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com