gpt4 book ai didi

android - 具有多个线程的 onRetainNonConfigurationInstance?

转载 作者:搜寻专家 更新时间:2023-11-01 09:05:12 27 4
gpt4 key购买 nike

我有关于在同一个 Activity 中恢复多个线程的问题:我的应用程序中有三个不同的线程,我称之为 AThread、BThread 和 CThread。

如果我的应用关闭并重新打开,我需要重新打开所有预览线程。我怎么能那样做?我想返回一个线程列表。这是一个好的选择吗?像这样的东西:

@Override
public Object onRetainNonConfigurationInstance() {
return new ArrayList<Thread>(AThread, BThread, CThread);
}

然后,在 onCreate 函数中,调用“for each”来验证所有线程。有点像

    @Override
public void onCreate(Bundle savedInstanceState) {
(...)
super.onCreate(savedInstanceState);
ArrayList<Thread> allThreads = (ArrayList<Thread>) getLastNonConfigurationInstance();
AThread = allThreads.get(0);
BThread = allThreads.get(1);
CThread = allThreads.get(2);
if (AThread != null && AThread.isAlive()) {
// TODO SOMETHING
}
if (BThread != null && BThread.isAlive()) {
// TODO SOMETHING
}
if (CThread != null && CThread.isAlive()) {
// TODO SOMETHING
}
}

这样对吗?有更好的主意吗?干杯 =)

最佳答案

使用 Fragment 托管您的 Thread(或者更优选 AsyncTask)并调用 setRetainInstance(true)FragmentonCreate 方法中。 Fragment 将在配置更改时保留,并且 Fragment(及其 Thread)不会与 Activity 一起销毁。我相信这优于使用 onRetainNonConfigurationInstance

关于android - 具有多个线程的 onRetainNonConfigurationInstance?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12433738/

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