我通过点击放置在另一个活动(UserActivity)中的按钮来调用android中的Master / Detail活动。奇怪的是,如果我单击Master / Detail活动中的后退按钮,我会在UserActivity状态下松开Data。它想再次执行onCreate方法。
如果我点击LoginActivity中的登录按钮,我将其重定向到UserActivitiy并返回“智能手机”的后退按钮,我输入的用户名和密码仍然存在。所以我不会丢失数据。
智能手机的后退按钮与程序顶部的后退按钮有区别吗?我现在有点困惑,我知道如何坚持活动的状态。但我的问题是,为什么我一方面有这种行为而另一方面没有。
答案 0 :(得分:0)
万一你会留下这样的问题并且不添加代码:
检查已经存在的物品数量可能会有所帮助。当我遇到这个问题时,onStart()被调用得如此之快,以至于我觉得Activity已经丢失了数据。实际上它是DID有数据,但是调用onCreate / onStart(I'在片段中)将它清空。
我为避免这种情况所做的是检查是否需要在列表中加载项目。如果存在,则调用包含旧onCreate / onStart所执行操作的方法。如果不需要加载数据,它将跳过该步骤并使用" old"数据幸福地度过了余生。
@Override
public void onStart() {
super.onStart();
if(DummyContent.ITEMS.size()<3){
initializeApp();
}
}
void initializeApp(){
videoTitles=new ArrayList<String>();
videoUrls=new ArrayList<String>();
. . .
}