应用程序最小化时的 Android 活动和片段生命周期问题

2024-02-03

我有一个带有多项选择列表的片段。我正在尝试保存当前在列表中检查的项目的实例,并在应用程序最小化等情况下恢复它们。

测试步骤:

  1. 到达多选列表片段。
  2. 检查一些列表项
  3. 按主页键最小化应用程序。
  4. 按多任务按钮并选择我的应用程序来恢复它

以下是我正在使用的代码:

adapter = new ArrayAdapter<String>(getActivity(),
        android.R.layout.simple_list_item_multiple_choice,
        android.R.id.text1, listToShow);
list.setAdapter(adapter);

list.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view,
                        int position, long id) {
                    mSelectedItems.clear();
                    int count = categoryList.getCheckedItemCount();

                    SparseBooleanArray booleanArray = categoryList.getCheckedItemPositions();

                    for (int i = 0; i < count; i++) {
                            mSelectedItems.add(booleanArray.keyAt(i));
                    }

                }
            });


@Override
public void onSaveInstanceState(Bundle outState) {
        Log.d("SubcategoryselectionList", "onsavedinstancestate");
        outState.putIntegerArrayList(SELECTED_ITEM, mSelectedItems);
        super.onSaveInstanceState(outState);
    }

@Override
public void onViewStateRestored(Bundle savedInstanceState) {
    Log.d("SubcategoryselectionList", "onViewStateRestored");
    if (savedInstanceState != null) {
        if (savedInstanceState.getIntegerArrayList(SELECTED_ITEM) != null) {
            Log.d("SubcategoryselectionList", "onViewStateREstored selected items found");
            mSelectedItems = savedInstanceState
                    .getIntegerArrayList(SELECTED_ITEM);
            for (int i = 0; i < mSelectedItems.size(); i++) {
                categoryList.setItemChecked(mSelectedItems.get(i), true);
            }
        }

    }
    super.onViewStateRestored(savedInstanceState);
}

当我看到日志时,该方法onViewStateRestored从未被调用过。

为了解决这个问题,我想到使用活动生命周期并使用它的方法onRestoreInstanceState()达到上述效果,但令人惊讶的是我看不到我添加到此方法中的日志。

请有人帮助澄清活动和片段的生命周期在这种情况下如何工作,以及如何以最佳方式恢复我的状态。


您应该实现您正在查找的逻辑onActivityCreated您可以在其中获取保存的实例状态。

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

应用程序最小化时的 Android 活动和片段生命周期问题 的相关文章

  • 带阴影的弯曲 Android 工具栏

    我需要为工具栏或卡片视图提供弯曲的底视图 我尝试过的 bg toolbar xml
  • 任务“:app:dexDebug”执行失败

    我目前正在处理我的项目 我决定将我的 Android Studio 更新到新版本 但在我导入项目后 它显示如下错误 Information Gradle tasks app assembleDebug app preBuild UP TO
  • 合并两个位图图像(并排)

    任何人都可以帮助将两个位图图像合并为单个位图 在android中 并排 谢谢 尤瓦拉吉 您可以使用Canvas 查看这篇文章 http www jondev net articles Combining 2 Images in Androi
  • ImageView 中的全尺寸图像

    我正在尝试在 ImageView 中绘制图像 但我希望它不缩放 并根据需要使用滚动条 我怎样才能做到这一点 现在我只有一个可绘制集作为 XML 中 ImageView 的 android src 这会自动缩放图像以适应屏幕宽度 我读到这可能
  • 检查双精度值的等于和不等于条件

    我在比较两者时遇到困难double values using and 我创建了 6 个双变量并尝试进行比较If健康 状况 double a b c d e f if a b c d e f My code here in case of t
  • doInBackground 运行时是否可以停止 asynctask?

    我正在 ActivityB Oncreate 中创建异步任务 在该任务中 我正在运行无限 while 循环doInBackground 当我转到上一个活动并再次回到该活动时 创建了另一个异步任务 我的问题现在是两个无限 while 循环正在
  • 在 Android 中将应用程序上下文保存到静态变量是否安全?

    我知道在 Android 上使用静态变量是相当危险的 特别是当您将它们引用到活动时 但是 如果我有一个扩展 Application 的类 我们称此类为 App 引用此类的实例是否安全 如果是这样 任何其他类对应用程序上下文进行任何类型的引用
  • Google Inbox 类似 RecyclerView 项目打开动画

    目前 我正在尝试实现 Google Inbox 例如RecyclerView行为 我对电子邮件打开动画很好奇 我的问题是 该怎么做 我的意思是 他们使用了哪种方法 他们用过吗ItemAnimator dispatchChangeStarti
  • 方法断点可能会大大减慢调试速度

    每当向方法声明行添加断点 在 Intellij IDEA 或 Android Studio 中 时 都会出现一个弹出窗口 方法断点可能会大大减慢调试速度 为什么会这样戏剧性地减慢调试速度 是我的问题吗 将断点放在函数的第一行有什么不同 Th
  • OpenCV InRange 参数

    我在 Android 上使用 OpenCV 来实时查找特定颜色的圆圈 我的第一步是仅保留与我正在寻找的定义颜色相对应的像素 在本例中为红色或绿色 示例图像 https i stack imgur com CIozU jpg 为此 我正在使用
  • 下载图像并显示它

    应用程序的主要目的是下载和显示图像 但是当我尝试启动应用程序时它崩溃了 这是我的代码 private DownloadImageTask task protected void onCreate Bundle savedInstanceSt
  • Android 手机应用意图

    我想在手机上启动手机应用程序作为意图 我正在使用这个代码 startActivity getPackageManager getLaunchIntentForPackage com android phone 但该函数抛出一个空指针异常 因
  • 如何将单选按钮状态保存到已保存/共享首选项?

    我可以在保存的首选项中保存字符串 但很难保存单选按钮 public class PersonalDetailsf extends Activity private SharedPreferences sharedPreferences pr
  • 如何覆盖日期选择器的高度和宽度以填充父布局

    我有一个活动包含一个日期选择器 我想设置DatePicker适合屏幕 我试过这个答案 https stackoverflow com questions 6674667 how to customize date pickers width
  • Android:如何监控WiFi信号强度

    当信号强度发生变化时我会收到通知 我尝试创建以下方法并在 onCreate 中调用它 private void initializeWiFiListener Log i TAG executing initializeWiFiListene
  • 如何在android中录制音频时暂停背景音乐

    我正在 Android 中开发一个音频记录应用程序 因此 如果设备音乐播放器中已播放任何背景音乐 则应在开始录制之前暂停该背景音乐 并且每当录制停止或暂停时 背景音乐都应恢复 播放录制的音频时也应该如此 有人可以帮我解决这个问题吗 提前致谢
  • 如何在新标签 android webview 中打开链接? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我已经使用 webview 创建了一个 android 应用程序来显示我的网站 我什至想添加在新选项卡中打开链接的功能 但我找不到任何
  • 如何在android sdk上使用PowerMock

    我想为我的 android 项目编写一些单元测试和仪器测试 然而 我遇到了一个困扰我一段时间的问题 我需要模拟静态方法并伪造返回值来测试项目 经过一些论坛的调查 唯一的方法是使用PowerMock来模拟静态方法 这是我的 gradle 的一
  • Jetpack Compose 部分或开放侧边框

    我正在尝试绘制部分或一侧开放的矩形圆形边框以实现此效果 玩了一下之后我得到了这个 这是通过以下方式完成的 RoundedCornerShape topStartPercent 50 bottomStartPercent 50 start R
  • Amazon IAP 不会调用 onPurchaseResponse

    我有一个 Android 应用程序 它使用 IAP 我正在发送PurchasingManager initiateGetUserIdRequest 并得到用户识别成功 in onGetUserIdResponse 得到回复后Purchasi

随机推荐

  • 当键盘存在时,如何使 UITextField 向上移动 - 开始编辑?

    使用 iOS SDK 我有一个UIView with UITextField调出键盘 我需要它能够 允许滚动内容UIScrollView键盘打开后即可查看其他文本字段 自动 跳跃 通过向上滚动 或缩短 我知道我需要一个UIScrollVie
  • iPhone 开发 - 开发和分发配置之间有什么区别?

    我无法在苹果文档中找到关于两者之间区别的明确解释发展 and 分配供应 我目前正在使用开发配置在我的 iPhone 上进行开发和测试 我打算将该应用程序分发到我的 Beta 测试中 我想知道 我需要使用吗分配供应 我应该为每个单独的测试人员
  • Android:获取列中的最高值

    我有一个指向内容的 URL 我需要获取其中一列中包含的最高值 是否有任何聚合函数可以完成该任务 或者我必须手动执行此操作 如果您正在查询 Android 内容提供商 您应该能够通过传递来实现此目的MAX COLUMN NAME 进入选择参数
  • 运行脚本标签是否会阻止其他脚本标签的下载?

    这是来自索引 html in HTML5 样板 https github com h5bp html5 boilerplate blob master index html 就在之前 tag
  • 如何在 C++ 中使用带有用户输入的枚举

    我正在制作一个简单的剪刀石头布游戏 我需要使用枚举数据结构 我的问题是 由于从 int userInput 到 Throws userThrow 的转换无效 我无法编译以下代码 enum Throws R P S int userInput
  • 如何启用 Qt5 中已弃用的功能

    我想将 Qt4 程序移植到 Qt5 并且某些函数未定义 例如 QHeaderView setMoveable 但我在 qheaderview h 文件中看到 通过一些神奇的定义 QT DEPRECATED SINCE 应该可以重新启用它们
  • 如何检查一个句柄是否应该关闭?

    如果 ShellExecuteEx 返回 false 是否应该关闭句柄 function EditAndWait const AFileName string boolean var Info TShellExecuteInfo begin
  • UILocalNotification 在 iOS 10 中已弃用

    这可能是一个提前的问题 但我想知道用什么代替UILocalNotification在 iOS 10 中 我正在开发一个具有部署目标 iOS 8 的应用程序 所以可以使用吗UILocalNotification 是的 您可以使用UILocal
  • 如何在线程中使用notifyDataSetChanged()

    我创建一个线程来更新我的数据并尝试这样做notifyDataSetChanged在我的列表视图中 private class ReceiverThread extends Thread Override public void run up
  • 通过后退按钮关闭 Ionic 4 中的模态框

    我有一个Modal in Ionic 4 我想close它 当用户按下返回键在她的手机上 或浏览器中的后退按钮 有谁知道我该怎么做 编辑 更多细节 我有一个打开模式的按钮 async onClick const modal await th
  • 在 C# 中检查来自不同类的变量

    问候 我有2节课 一个称为 程序 另一个称为 日志 名为 Programs 的类有public const string m sEnviron 在顶部附近 我需要通过名为 Logs 的类检查 m sEnviron 变量设置的内容 变量 m
  • 在 Django/Python 中标准化街道地址

    我有一个 Django 表单 其中一个字段是TextInput街道地址 我想标准化数据 例如 gt gt normalize 420 East 24th St 420 E 24th Street gt gt normalize 221 Am
  • 使用 100% cpu 的相对简单的 Python 脚本

    我不会提供代码 因为它太长了 python 脚本涉及执行在 while 循环中运行的大量命令 基本结构 while True The meat goes here with the odd if and stuff 现在我已经完成了它 我注
  • iOS Swift 以编程方式连接 WiFi 并区分密码错误和范围内没有 WiFi

    NEHotspotConfiguration工作正常 但错误是nil当我尝试连接的 SSID 不可用 超出范围或关闭 或我提交的密码不正确时 我究竟做错了什么 我希望能够区分这两种情况 以便我可以相应地通知用户 代码片段 func conn
  • Grunt/Bundler 不会使用指定的 sass 版本

    我们有一个带有 Grunt 和 Bundler 设置的项目 所有这些都安装没有问题 生成了 Gemfile lock 下拉了正确的 gem 并使用 npm 创建了 grunt 文件 我们开始监视该项目 它在 sass 编译上崩溃 因为它使用
  • 测试 DataFrame 中的后续值

    我有一个 DataFrame 其中一列包含正整数和负整数 对于每一行 我想查看有多少连续行 从当前行开始并包括当前行 具有负值 所以如果一个序列是2 1 3 1 1 结果将是0 2 1 0 1 我可以通过迭代所有索引来做到这一点 使用 il
  • Python:如何让我的 tkinter 应用程序正确退出?

    我需要知道如何在 Mac 上执行此操作 因为每当我尝试退出它时 我都必须强制退出它 当用户单击退出按钮时 是否有正确的方法使 Tkinter 正常退出 我知道怎么做了 我只是放了一个简单的exit 主循环之后的命令
  • 在 Win32 / COM 方法上调用 PInvoke 时,通常会出现明显的性能影响吗?

    我想知道是否有人对在托管 Net 代码的 Win32 方法上使用 DLLImport PInvoke 的负面方面有一个不错的解释或概述 我计划使用各种 Win32 方法 并希望更好地了解这样做的负面影响 Thanks Brian 根据MSD
  • 如何在 EF CF 中设置 POCO 的默认值?

    在实体框架代码优先方法中 如何为 POCO 的 EntityConfiguration 类中的属性设置默认值 public class Person public int Id get set public string Name get
  • 应用程序最小化时的 Android 活动和片段生命周期问题

    我有一个带有多项选择列表的片段 我正在尝试保存当前在列表中检查的项目的实例 并在应用程序最小化等情况下恢复它们 测试步骤 到达多选列表片段 检查一些列表项 按主页键最小化应用程序 按多任务按钮并选择我的应用程序来恢复它 以下是我正在使用的代