[英]OnStart () is called after OnStop() and that is making problems for my aplication
首先,我想对头衔模糊表示抱歉。 我不知道这个问题还有什么名字。
我有2个活动(ActivityA,ActivityB)。 在ActivityA中,我重写了onStop()
函数,并单例更改了值X。 当我转到ActivityB并onStart()
,我检查了X值。问题是onStart()
在onStop()
之前被调用,并且我在onStart()
函数中检查的值仍然是onStop()
之前的旧值。改变它。
我知道为什么在onStop()
之前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等,如文档所示!
它完全取决于调用这些方法的系统,最好使用onPause();
和onResume();
活动的前台生存期发生在调用onResume()到相应的调用onPause()之间。 在这段时间内,活动位于所有其他活动的前面,并且与用户进行交互。 活动通常可以在恢复状态和暂停状态之间进行切换-例如,当设备进入睡眠状态,何时发送活动结果,何时发送新意图时-因此这些方法中的代码应相当轻量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.