我在安卓中通过点击另一个activity (UserActivity)中的按钮来调用Master/Detail activity。奇怪的是,如果我在Master/Detail活动中单击back按钮,就会丢失UserActivity状态下的数据。它希望再次执行onCreate方法。
如果我点击LoginActivity中的登录按钮,我被重定向到UserActivitiy,然后我返回到“智能手机”的返回按钮,我输入的用户名和密码仍然在那里。因此,我不会丢失数据。
智能手机的后退按钮和程序顶部的后退按钮有区别吗?我现在有点困惑,我知道如何保持活动的状态。但我的问题是,为什么我一边有这种行为,另一边却没有。
发布于 2017-07-21 06:24:12
以防你留下这样的问题,不要添加代码:
可能会有帮助的是检查已经存在的项目的数量。当我遇到这个问题时,onStart()被调用得如此之快,以至于在我看来,活动似乎丢失了数据。实际上它确实有数据,但是调用onCreate/onStart (我在一个片段中) NULLed它。
我所做的就是检查是否需要加载列表中的项。如果有,它将调用一个方法,该方法包含旧的onCreate/onStart所做的事情。如果不需要加载数据,它就会跳过这一步,快乐地与“旧”数据共度余生。
@Override
public void onStart() {
super.onStart();
if(DummyContent.ITEMS.size()<3){
initializeApp();
}
}
void initializeApp(){
videoTitles=new ArrayList<String>();
videoUrls=new ArrayList<String>();
. . .
}https://stackoverflow.com/questions/45225288
复制相似问题