活动在Nougat版本中一次又一次地创建和恢复

时间:2018-04-13 06:03:30

标签: java android android-studio android-activity

我正在从Activity A导航到Activity B而没有完成Activity A(因为我想重新开始并拥有一些变量值)。

Activity B我启动相机并保存捕获的图像,但问题是,在捕获相机后,Activity A重新创建并恢复,导致重新初始化我的变量。

如何阻止它?

注意:问题仅出现在牛轧糖版本中。

2 个答案:

答案 0 :(得分:0)

您想知道的是关于完整的活动生命周期。基本上是为了总结它们 OnCreate, - 在创建活动时调用 OnStart, - 在活动开始时调用  OnREsume, - 当活动回来时 OnPause, - 活动重叠时 OnStop, - 活动结束时 和onDestroy - 调用finish()时。

虽然你还没有提到你是如何开始一项活动并回到同一活动的,但回到以前活动的正确方法是致电

finish()

关于相机活动。 我想你已经使用

回到活动A.
Intent i= new Intent(this, ActvityA.class)
startActivity(i)

这是正确的方法。 当你想从B回到活动A时,只需调用finish()(这里B位于A的顶部)。

附加 如果您想将活动B中的数据传递给A,只需输入名为Intent Extra or Bundle

的内容即可

答案 1 :(得分:0)

  

活动A再次创建并恢复,因此我的变量再次初始化。如何阻止它。

是的,这是正常的。 Android编程的第一条规则是您的活动可以随时被杀死。因此,为了不丢失变量,您必须在适当的时候保存它们。

您可以覆盖onSaveInstanceState()将变量放入捆绑包中。

然后您可以从函数参数{/ 1}}中检索它们。