在OnStop()之后调用OnStart(),这会给我的应用程序带来问题

时间:2014-02-25 09:34:58

标签: java android

首先我想说的是我对这个模糊的标题感到抱歉。我不知道还有什么可以说出这个问题。

我有2个活动(ActivityA,ActivityB)。在ActivityA中,我重写了onStop()函数,并在单例中更改了值X.当我转到ActivityB并调用onStart()时,我检查值X.问题是在onStart()之前调用了onStop(),并且我在onStart()函数中检查的值是仍然是onStop()之前的旧值更改它。

我知道为什么在onStart()之前调用onStop()。我问你们是我现在遇到的这个问题的替代解决方案。

我需要在关闭它之前在ActivityA中保存一个值,我需要在ActivityB中检查相同的值。可以从其他几个活动访问ActivityB,而不仅仅是ActivityA。而且,otehr活动不会改变价值。

解决 我将onStop()改为onPause()。谢谢你们!

2 个答案:

答案 0 :(得分:3)

不要使用单身人士。 活动将Intent用作它们之间的沟通渠道。

在活动A:

中这样做
Intent i = new Intent(this, ActivityB.class);
i.putExtra("value", 10);
startActivity(i);

然后在活动B中,你做(在任何你想要的地方):

int value = getIntent.getIntExtra("value", 0);

也适用于double,string,float,bundle,arrays等,如in the docs!

所示

答案 1 :(得分:0)

完全取决于调用这些方法的系统,更好的方法是使用onPause();onResume();

enter image description here

See what the Official Docs say here

活动的前景生命周期发生在对onResume()的调用之间,直到对onPause()的相应调用。在此期间,活动位于所有其他活动之前并与用户交互。活动可以经常在恢复和暂停状态之间进行 - 例如,当设备进入休眠状态,交付活动结果时,交付新意图时 - 因此这些方法中的代码应该相当轻量级。 p>