首先,我想对头衔模糊表示抱歉。我不知道这个问题还有什么名字。

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

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

我需要先关闭ActivityA中的值,然后再关闭ActivityB中的相同值。可以从其他几个活动中访问ActivityB,而不仅仅是ActivityA。而且,活动不会改变价值。

解决了
我将onStop()更改为onPause()可行。谢谢你们!

最佳答案

不要使用单例。
活动具有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,array等,如in the docs!所示

关于java - 在OnStop()之后调用OnStart(),这给我的应用程序带来了问题,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22009964/

10-10 20:44