You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Android配置更改导致崩溃

在Android开发中,当屏幕方向、语言或其他配置更改时,会发生应用程序的重新创建。这可能会导致应用程序崩溃或导致数据丢失,称为'Android crash on configuration change”。为了避免此问题,我们可以通过以下两种方法解决:

1.禁止重新创建:可以通过在Manifest文件中添加以下属性来禁止重新创建:

android:configChanges="orientation|keyboardHidden|screenSize"

这告诉系统我们将处理这些更改,而不是重新创建活动。我们可以在活动中覆盖onConfigurationChanged方法,并添加我们想要处理的更改。例如:

@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig);

if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE) {
    //处理横屏
} else if (newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
    //处理竖屏
}

}

2.使用ViewModel:ViewModel是一种在Android架构组件中使用的组件,用于管理UI数据。它与活动生命周期无关,因此即使屏幕方向更改,数据仍然存在。我们可以使用ViewModel来存储我们的数据,然后在重新创建活动时使用它们。例如:

public class MyViewModel extends ViewModel { private MutableLiveData<String> myLiveData = new MutableLiveData<>();

public void setMyLiveData(String data) {
    myLiveData.setValue(data);
}

public LiveData<String> getMyLiveData() {
    return myLiveData;
}

}

活动中,我们可以使用ViewModel来获取数据和更新数据。例如:

MyViewModel viewModel = ViewModelProviders.of(this).get(MyViewModel.class); viewModel.getMyLiveData().observe(this, new Observer<String>() { @Override public void onChanged(@Nullable String data) { //更新UI } });

无论发生何种配置更改,数据都将保持不变,并且在活动重新创建时仍然可用。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

Android重置权限后应用重启问题研究|社区征文

demo就像崩溃了一样,重新初始化,并且清除了之前的登录状态,详情可参考录屏:![ezgif.com-gif-maker (1).gif](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b9edb665373847118701aadcefa03f77~tplv-k3u1fbpfcp-5.jpeg?)# 定位根据录屏可以看出,在设置中重置了权限后再返回app,app会再次进行初始化,根据logcat也可以看出对应的进程号也变了。根据该现象,可以确定与权限相关。根据反馈,出现问题的手机版本是Android11...

借助 MAD 助力你的 Android 应用开发|社区征文

MAD 的全称是 Modern Android Development , 它是一系列技术栈和工具链的集合,涵盖了从编程语言到开发框架等各个环节。![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/816cd653f4984adf87697... NPE 方面的崩溃率只有 0.3 ‰,而通常 Java 项目的 NPE 会超过 1 ‰### ImmutableKotlin 的安全性还体现在数据不会被随意修改。我们在代码中大量使用 `data class` 并且要求属性使用 `val` 而非 `var` 定义,这有...

深度解读 Android 14 重要的 8 个新特性|社区征文

调查下文档就知道 14 变更了什么、如何。而 New Features 作为新的功能、API,并不会影响 App 原来的逻辑,但**实实在在地解决了痛点、优化了体验、提供了一个又一个特色能力,从长远来讲是更有价值的**。如果开发... [Android 14 新 API:直接监听截屏操作,不用再观察媒体文件了~](https://juejin.cn/post/7219567168316473404)## 2.TextView Highlight### HighLights API对于做 Mail、SMS、Note 类的 App 难免遇到设置文本 ...

Android 资源溢出崩溃轻松解

一部分可以直接从堆栈中看到哪里使用了多大内存导致了内存溢出,复杂一些的Java OOM,则可以使用其他分析工具来进行处理。但如果堆栈里看不出来呢?或者它不是Java崩溃呢?![image.png](https://p9-juejin.byteimg.c... Java runtime:安卓系统Java虚拟机占用,一般App默认会占用1G以上,可降低关注优先级- Native Heap:C代码使用的堆内存大小,如malloc调用分配的内存等,都会在这里体现;- Thread:线程使用的内存大小,默认情况...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

Android配置更改导致崩溃 -优选内容

Android崩溃防护
主线程和子线程都无法执行崩溃点之后的程序逻辑。 注意 主线程发生的崩溃,防护后ApmPlus SDK会重启looper,再次发生未防护的崩溃,堆栈中会包含com.apm.insight,可以忽略。 前提条件已接入崩溃防护。详情请参见Android SDK接入。 完成崩溃防护配置。详情请参见SDK上报配置和创建崩溃防护配置崩溃防护配置注意 Android崩溃防护无法继续执行崩溃位置后的程序逻辑。重要的业务逻辑和防护后有可能导致用户体验下降的场景不建议...
Android 集成常见问题
集成 RTC SDK 时因 Failed resolution of: Landroid/support/v4/content/ContextCompat; 崩溃RTC SDK 对 support/v4 有依赖,是较早的版本,早于 Android X。如果你的工程通过 android.useAndroidX=true 配置,标记 APP 强制使用 AndroidX,那么,可能会导致编译不通过,并有以上报错。 解决方案:在项目根目录的 gradle.properties 文件中添加 android.enableJetifier=true。 如何进行混淆配置?自较早的版本开始,RTC SDK 中都在根目录下...
Android重置权限后应用重启问题研究|社区征文
demo就像崩溃了一样,重新初始化,并且清除了之前的登录状态,详情可参考录屏:![ezgif.com-gif-maker (1).gif](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/b9edb665373847118701aadcefa03f77~tplv-k3u1fbpfcp-5.jpeg?)# 定位根据录屏可以看出,在设置中重置了权限后再返回app,app会再次进行初始化,根据logcat也可以看出对应的进程号也变了。根据该现象,可以确定与权限相关。根据反馈,出现问题的手机版本是Android11...
异常和崩溃
异常和崩溃支持Android重启、内核重启、系统应用崩溃、本地服务崩溃、核心应用崩溃、子系统崩溃、三方应用崩溃以及系统隐患。本文以Android重启为例,介绍异常和崩溃页面信息。 上报趋势页面说明如下所示: 区域 说明... 显示选中指标崩溃次数在各个版本上的趋势图,多曲线显示。 X轴为异常的发生/上报时间,Y轴指代异常的发生次数。 趋势图横向滑块,可缩放图表展示的时间范围。 核心应用崩溃页面中,单击右上角设置核心应用,可以在项目...

Android配置更改导致崩溃 -相关内容

崩溃分析

导致应用被系统关闭。所以应当积极采取措施来降低内存的使用。 16:内存压力较高,系统内存资源已经严重不足,应用程序将要被系统结束。 崩溃分布崩溃分布支持通过多维分析来了解崩溃的分布情况以定位问题。 悬停在分布图上可以查看当前分类的全称,以及在该指标类型中的占比。 默认以系统版本、机型、APP版本和APP小版本号4个维度展示错误的分布情况,支持单击设置按钮选择其他维度,例如崩溃类型、前后台、下载渠道等等,Android和...

项目设置

本文介绍项目配置中可以支持配置的指标。 Critical数据配置Critical 指标默认包含的异常类型包括安卓重启率、内核重启率、系统应用崩溃率、本地服务崩溃率和子系统崩溃率。用户可以根据业务需求自定义 Critical 指标包含的指标项。 登录应用性能监控全链路版控制台。 单击目标应用下的 OS 端监控。 选择全部功能 > 项目设置。 在 Critical 数据配置区域,勾选指标设置中需要的指标。 说明 安卓重启率和内核重启率不支持取消勾选。...

App崩溃分析

关联的崩溃分析服务支持Android/iOS应用类型,帮助客户建立5分钟线上故障感知能力,后续会进一步与性能分析/远程日志服务配合使用,构建异常“感知-定位-恢复”的运维能力闭环,提升App使用体验。 当前「A/B 测试」 的「编程实验、推送实验」支持接入崩溃分析能力,因为只有APP(移动端)才能取到app_crash事件。 二. 创建指标 1. 系统预置指标默认以下指标作为系统预置的指标,如下: 序号 指标名称 指标描述 指标类型 设置指标 是否为必...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

客户端 SDK

新增特性支持内部采集信号静音控制(不改变本端硬件)。可以选择静音或取消静音麦克风采集,而不影响 SDK 音频流发布状态。参看: 功能简述 Android iOS macOS Windows Linux Unity 设置是否将录音信号静音(不改变本端... 调整美颜强度。 EnableEffectBeauty SetBeautyIntensity 智能美化特效接口,对本地采集的视频添加美颜、滤镜、贴纸等特效。 GetAuthMessage FreeAuthMessage InitCVResource EnableVideoEffect DisableVideoEffect...

借助 MAD 助力你的 Android 应用开发|社区征文

MAD 的全称是 Modern Android Development , 它是一系列技术栈和工具链的集合,涵盖了从编程语言到开发框架等各个环节。![image.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/816cd653f4984adf87697... NPE 方面的崩溃率只有 0.3 ‰,而通常 Java 项目的 NPE 会超过 1 ‰### ImmutableKotlin 的安全性还体现在数据不会被随意修改。我们在代码中大量使用 `data class` 并且要求属性使用 `val` 而非 `var` 定义,这有...

深度解读 Android 14 重要的 8 个新特性|社区征文

调查下文档就知道 14 变更了什么、如何。而 New Features 作为新的功能、API,并不会影响 App 原来的逻辑,但**实实在在地解决了痛点、优化了体验、提供了一个又一个特色能力,从长远来讲是更有价值的**。如果开发... [Android 14 新 API:直接监听截屏操作,不用再观察媒体文件了~](https://juejin.cn/post/7219567168316473404)## 2.TextView Highlight### HighLights API对于做 Mail、SMS、Note 类的 App 难免遇到设置文本 ...

Android 资源溢出崩溃轻松解

一部分可以直接从堆栈中看到哪里使用了多大内存导致了内存溢出,复杂一些的Java OOM,则可以使用其他分析工具来进行处理。但如果堆栈里看不出来呢?或者它不是Java崩溃呢?![image.png](https://p9-juejin.byteimg.c... Java runtime:安卓系统Java虚拟机占用,一般App默认会占用1G以上,可降低关注优先级- Native Heap:C代码使用的堆内存大小,如malloc调用分配的内存等,都会在这里体现;- Thread:线程使用的内存大小,默认情况...

SDK更新日志

客户端打通参数由Native变更为enable_native; 2022年10月14日 iOS: V6.13.1新增拉取DataTester实验方法,支持设置超时时间以及响应回调函数; 埋点实时验证提示优化; 允许用户自定义SDK请求的部分HTTPHeader; 支持SDK初始化前设置用户uuid; 修复已知问题。 Android: V6.13.3新增应用崩溃事件采集; 新增禁用事件配置; 新增采集Google AID配置开关; 新增获取多实例接口; 新增可设置超时和回调的拉取AB实验配置接口; 实时埋点验证新...

MAD,现代安卓开发技术:Android 领域开发方式的重大变革|社区征文

有的时候 Google 会将其翻译成`现代安卓开发`,有的时候又翻译成`新式安卓开发`,个人觉得前者的翻译虽然激进、倒也贴切。下面按照 MAD 的构成要点逐步展开,帮助大家快速了解 MAD 的技术理念。如果大家对其中的语言... 进的官方 IDE* Android App Bundle :先进的应用打包和分发方式* Kotlin :首推的编程语言* Jetpack :独立于 AOSP 以外,汇集了大量开发框架的开发套件* Jetpack Compose:Android 平台重大变革的 UI 工具包同...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询