gpt4 book ai didi

android - 静态对象在 Android 上保留它们的实例多长时间?

转载 作者:行者123 更新时间:2023-11-29 01:37:11 25 4
gpt4 key购买 nike

所以我使用了一些 hack 来保存 fragment 中 WebView 的状态。

private enum WebViewStateHolder
{
INSTANCE;

private Bundle bundle;

public void saveWebViewState(WebView webView)
{
bundle = new Bundle();
webView.saveState(bundle);
}

public Bundle getBundle()
{
return bundle;
}
}

然后

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState)
{
View rootView = inflater.inflate(R.layout.activity_example, container, false);
ButterKnife.inject(this, rootView);
...
if(WebViewStateHolder.INSTANCE.getBundle() == null)
{
webView.loadUrl("file:///android_asset/index2.html");
}
else
{
webView.restoreState(WebViewStateHolder.INSTANCE.getBundle());
}
return rootView;
}

@Override
public void onPause()
{
...
WebViewStateHolder.INSTANCE.saveWebViewState(webView);
super.onPause();
}

所以基本上我在暂停时保存了包,然后当 Fragment 创建一个 View 并且它不为 null 时,我将它加载回来。实际上,它工作得很好。但是,如果我说

getActivity().finish();

WebView 从 bundle 本身加载它的数据,仍然记得它所在位置的历史。

这似乎不太可靠,虽然这是测试的结果,但我仍然对发生这种情况感到惊讶。

静态对象何时会在 Android 上丢失其数据?这些实例存在多长时间? Android 会随着时间的推移摆脱它们吗?

最佳答案

静态变量将一直存在到your process is terminated。 .

关于android - 静态对象在 Android 上保留它们的实例多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27192388/

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