【发布时间】:2011-04-30 16:27:21
【问题描述】:
我有 2 个活动,名为 FirstActivity.java 和 SecondActivity.java。
当我单击FirstActivity 中的按钮时,我调用SecondActivity。当我从SecondActivity 返回时,根据结果,我需要跳过FirstActivity 中的一些步骤,这些步骤在其onCreate() 方法中执行。
从SecondActivity 回来,我使用Bundle 将我作为输入提供的数据放入Intent。我在第一次活动的onCreate() 中访问了该数据。
当我开始时,活动应用程序崩溃,在我访问第二个活动数据的行中显示为NullPointerException。
我认为原因是应用程序第一次启动时Bundle 中没有值
那么,谁能帮我解决这个问题?
【问题讨论】:
-
如果您的调用堆栈是 FirstActivity->(屏幕上的按钮)->SecondActivity->(硬件后退按钮)->FirstActivity...则不会再次为 FirstActivity 调用 onCreate()。
-
Vuk,你声明了一个错误的假设。当 FirstActivity 在后台时,它可能是 OR 可能不会被操作系统破坏(这取决于当前的 RAM 状态)。
-
是的,Arhimed,我同意。虽然我会亲自将“Android_programmer_camera”想要多次运行的所有代码添加到......嗯......比如说onResume()或onRestoreInstance()或其他东西。我的观点是,每次在活动和 onCreate() 之间切换时,他都不能指望内存不足的情况。但你是对的,我对 onCreate() 从来没有被多次调用有点明确,这可能会发生。干杯:)
标签: android