如何上传并优化自己的网站SEO,确保网站地图的有效性?
摘要:怎么上传自己做的网站,seo 网站地图优化,大连网页设计制作公司,高端的佛山网站建设价格文章目录 深入分析 Android Activity (十一)1. Activity 的内存管理和优化1.1 内存泄漏的常见原因1.2 避免内存泄漏的方
怎么上传自己做的网站,seo 网站地图优化,大连网页设计制作公司,高端的佛山网站建设价格文章目录 深入分析 Android Activity (十一)1. Activity 的内存管理和优化1.1 内存泄漏的常见原因1.2 避免内存泄漏的方法1.3 内存泄漏检测工具 2. Activity 的配置变更处理2.1 处理配置变更2.2 保存和恢复状态2.3 使用 ViewModel 3. Activity 的测试3.1 单元测试3.2 UI 测试 4… 文章目录 深入分析 Android Activity (十一)1. Activity 的内存管理和优化1.1 内存泄漏的常见原因1.2 避免内存泄漏的方法1.3 内存泄漏检测工具 2. Activity 的配置变更处理2.1 处理配置变更2.2 保存和恢复状态2.3 使用 ViewModel 3. Activity 的测试3.1 单元测试3.2 UI 测试 4. Activity 与 Fragment 的关系4.1 添加 Fragment4.2 处理 Fragment 生命周期4.3 Fragment 之间的通信 总结 深入分析 Android Activity (十一)
1. Activity 的内存管理和优化
内存管理是 Android 开发中非常重要的一部分。内存泄漏会导致应用崩溃和性能问题因此需要在开发过程中注意内存管理和优化。
1.1 内存泄漏的常见原因
静态引用静态变量持有 Activity 的引用会导致内存泄漏。未取消的监听器忘记注销注册的监听器或回调会导致内存泄漏。Handler 内存泄漏匿名内部类 Handler 引用外部类实例会导致外部类无法被回收。长时间运行的线程线程持有 Activity 的引用在 Activity 销毁后线程未终止会导致内存泄漏。
1.2 避免内存泄漏的方法
使用弱引用使用 WeakReference 持有 Activity 的引用。及时取消监听器和回调在 onDestroy 或其他适当时机取消监听器和回调。静态内部类使用静态内部类避免持有外部类的引用。使用 Application Context在适当场景下使用 Application Context 而非 Activity Context。
// 使用 WeakReference 避免内存泄漏
private static class MyHandler extends Handler {private final WeakReferenceMyActivity mActivity;public MyHandler(MyActivity activity) {mActivity new WeakReference(activity);}Overridepublic void handleMessage(Message msg) {MyActivity activity mActivity.get();if (activity ! null) {// Handle message}}
}1.3 内存泄漏检测工具
LeakCanary一个内存泄漏检测工具可以帮助检测内存泄漏。
// 在 Application 类中初始化 LeakCanary
public class MyApplication extends Application {Overridepublic void onCreate() {super.onCreate();if (LeakCanary.isInAnalyzerProcess(this)) {return;}LeakCanary.install(this);}
}2. Activity 的配置变更处理
配置变更如屏幕旋转、语言切换会导致 Activity 被销毁和重建需要妥善处理以保存和恢复数据。
2.1 处理配置变更
可以在 AndroidManifest.xml 中通过 android:configChanges 属性指定处理配置变更。
activity android:name.MyActivityandroid:configChangesorientation|screenSize|keyboardHidden/在 Activity 中重写 onConfigurationChanged 方法。
