gpt4 book ai didi

android - getLastNonConfigurationInstance()

转载 作者:行者123 更新时间:2023-11-29 14:23:39 24 4
gpt4 key购买 nike

长话短说,我必须开发一个小应用程序,在应用程序启动时显示随机图像。我很快发现,当设备方向改变时,主要 Activity 会重新加载并选择新图像。这个站点上的某人通过在 OnCreate() 之外声明一个空图像,然后在 OnCreate() 内部声明一个空图像来帮助我解决这个问题,我有这个:

image = (Bitmap) getLastNonConfigurationInstance();

if (image == null) {
image = getRandomImage();
}
setRandomImage(image);

这很好用。我现在的问题是我必须向应用程序添加一个随机的“每日报价”,但我无法完成这项工作。当设备方向发生变化时,将提取新的引用。我认为以下可能会起作用,但它不起作用:

message = (String) getLastNonConfigurationInstance();

if (message == null) {
message = getRandomMessage();
}
setRandomMessage(message);

我可能只是不明白 getLastNonConfigurationInstance() 是如何工作的,所以如果有人能帮助我,我将不胜感激。

最佳答案

getLastNonConfigurationInstance()将为您提供 onRetainNonConfigurationInstance()

返回的对象

您只能使用此机制保存/检索一个对象。因此,只需将消息和图像包装在另一个类中并使用它。

更新:

public class ConfigWrapper{
public Bitmap image;
public String message;
}

然后使用它:

ConfigWrapper config = (ConfigWrapper) getLastNonConfigurationInstance();

if(config == null || config.image == null ){
image = getRandomImage();
} else {
image = config.image;
}
setRandomImage(image);

然后在您的 onRetainNonConfigurationInstance() 中创建配置:

onRetainNonConfigurationInstance(){
ConfigWrapper config = new ConfigWrapper();
config.image = // get last image from where you have it
config.message = // get last message
return config;
}

关于android - getLastNonConfigurationInstance(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5994801/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com