首先,我想对头衔模糊表示抱歉。我不知道这个问题还有什么名字。
我有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/