繁体   English   中英

在OnStop()之后调用OnStart(),这给我的应用程序带来了麻烦

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM