`
lindexi-gd
  • 浏览: 139594 次
社区版块
存档分类
最新评论

win10 uwp 应用转后台清理内存

 
阅读更多

我在写小说阅读器,把每个打开的文件的内容读到内存,因为小说都很小,所以放在内存不怕太大,但是我如果打开了一本小说,再打开一本,我不会把先打开的小说的内容清除掉,在内存。所以一旦我打开多小说的时候,内存就会用比较多,这样觉得不好,不过垃圾wr给我们一个事件,这个我会在下面说。

我们很多应用会在前台用很多资源,例如我们的界面,在转入后台可以清理很多资源,如果判断用户不是马上就转回的,我们可以用新的EnteredBackground使用简单。在我的小说里面有写,我来看看我是怎么写。

在我们的App()


        public App()

        {

            this.InitializeComponent();

            this.Suspending += OnSuspending;

            EnteredBackground += App_EnteredBackground;

            LeavingBackground += App_LeavingBackground;

        }

        private void App_LeavingBackground(object sender, LeavingBackgroundEventArgs e)

        {

            //应用离开后台

            _areBackground = false;

        }

        private void App_EnteredBackground(object sender, EnteredBackgroundEventArgs e)

        {

            //应用进入后台

            _areBackground = true;

        }

        private bool _areBackground;

如果你应用没有EnteredBackground ,更新sdk 14393

如果安装了,可以修改你的文件<TargetPlatformVersion>10.0.14393.0</TargetPlatformVersion>

这里写图片描述

我们判断在我们进入后台清理我们的内存,因为小说经常不是后台就不用,我们就把我们现在使用的小说打开,其他打开小说放在内存资源全删,很简单,但是我们看官方建议是不GC.Collect();


        private void App_EnteredBackground(object sender, EnteredBackgroundEventArgs e)

        {

            //应用进入后台

            _areBackground = true;

            //清理

            var account = AccountGoverment.View.Account;//我们把所有的用户的放在用户管理

            if (account != null)

            {//我们把我们现在打开的小说除掉,其他都清空

                foreach (var temp in account.File.Where(temp => temp != AccountGoverment.View.File))

                {

                    //AccountGoverment.View.File我们打开的小说

                    //account.File 所有小说

                    temp.Str = null;

                    //我们会在加载的时候,点击小说,EaddressModel.Read()

                }

            }

        }

我们对于内存,还有在我们使用缓存,判断我们应用使用内存,垃圾wr给我们两个事件,需要我们用sdk 14393,我觉得垃圾wr这样不好,才半年就改

MemoryManager给我们几个属性,AppMemoryUsage 获取应用程序当前的内存使用率, AppMemoryUsageLevel 获取应用程序当前的内存使用率级别,AppMemoryUsageLimit 获取应用程序当前的内存使用率限制,都是只读,我们可以获取这些值来得到我们应用是不是占用太多内存。

AppMemoryUsageLimitChanging应用限制最大内存,在我们应用转入后台,我们的内存限制就会变化,然而还有很多诡异的也会让我们内存限制变化,我们可以根据内存变化,清理缓存

AppMemoryUsageIncreased我们在我们开始缓存需要我们的内存应用等级,这个事件是内存使用等级,假如我们的内存等级从小到大,那么发生,一旦发生我们就要检查我们是否清理

AppMemoryUsageDecreased我们应用内存等级下降,在我们使用内存从大到小使用,这个在我们清理很多缓存可以让我们知道不用清理,一般用是在AppMemoryUsageIncreased 有个任务CleanTask,把我们的缓存清理,然后我们有个bool,一旦AppMemoryUsageDecreased我们就设为true,那么我们的CleanTask判断true就停下。

源代码:https://github.com/lindexi/NovelRead

知识共享许可协议
本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>
分享到:
评论

相关推荐

    Win10 UWP应用代理工具

    全选设置之后UWP即可访问localhost,可以走代理。

    Win10下通过UWP刷新WIFI

    在Windows 10操作系统中,开发人员可以利用通用Windows平台(UWP)应用程序接口来实现对Wi-Fi网络的各种操作,包括刷新Wi-Fi列表、获取Wi-Fi信息以及连接到Wi-Fi网络。UWP提供了丰富的API集,使得开发者能够在安全且...

    Win10 UWP 开发教程 课程 资源

    Win10 UWP 开发教程 课程 资源 80课时 课程地址:http://blog.csdn.net/shanguuncle/article/details/78111649

    UWP应用设计规范

    UWP(Universal Windows Platform,通用Windows平台)应用设计规范是微软为开发者提供的关于如何设计在所有基于Windows 10的设备上运行良好的用户界面的一套指导原则。这包括从手机、平板电脑到个人电脑和Surface ...

    win10 uwp 轻量级 MVVM 框架入门 2.1.5.3199 例子

    在Windows 10平台上开发UWP(Universal Windows Platform)应用时,MVVM(Model-View-ViewModel)设计模式被广泛采用,它可以帮助开发者创建出松耦合、可测试且易于维护的代码。本文将深入介绍如何使用一个轻量级的...

    快捷将UWP应用添加到环回免除列表以使用代理加速访问.zip

    在IT行业中,UWP(Universal Windows Platform)应用是微软为Windows 10及更高版本操作系统设计的一种现代化应用程序框架。这些应用程序具有跨设备兼容性,并且能够利用Windows平台的各种特性和功能。然而,当涉及到...

    C#实现win10 uwp 右击浮出窗在点击位置

    在Windows 10 UWP应用开发中,常常需要创建一种用户友好的交互方式,即当用户右键点击某个元素时,能在一个特定的位置显示一个浮出菜单(MenuFlyout)。本篇文章将详细介绍如何使用C#实现这样的功能,使得MenuFlyout...

    WindowsStore_LTSC2019,LTSC 自动恢复 win10 应用商店

    但是LTSB/C也没了应用商店和UWP运行环境.,LTSC自动恢复win10应用商店,应用商店也是Win10的一大特色! Win10的应用商店也有一些优秀的应用可以代替臃肿的桌面程序. 使用该工具即可在 Windows10 LTSC(2019,1809) 上...

    hosxy#Settings#为UWP应用开启本地回环访问权限1

    1、什么是本地回环 2、开启本地回环访问权限 3、删除本地回环访问权限 4、查看可以拥有访问本地回环代理的应用列表 5、获取 UWP 应用的 SID 或者 Pa

    lindexi#lindexi#2020-10-28-win10-uwp-字符文本转语音声音文件方法1

    title: "win10 uwp 字符文本转语音声音文件方法"在 UWP 中,支持将传入的字符串文本内容转换为音频语音,可以将这个语音声音通过 MediaEl

    WindowsStore_LTSC2019,LTSC自动恢复win10应用商店

    但是LTSB/C也没了应用商店和UWP运行环境.,LTSC自动恢复win10应用商店,应用商店也是Win10的一大特色! Win10的应用商店也有一些优秀的应用可以代替臃肿的桌面程序. 使用该工具即可在 Windows10 LTSC(2019,1809) 上安装...

    桌面应用转UWP应用注意事项.docx

    将桌面应用转换为Windows 10的UWP(通用Windows平台)应用,是现代软件开发的一个重要方向,因为UWP提供了跨设备兼容性、安全性和更丰富的功能集。以下是将桌面应用迁移到UWP时需要注意的关键点: 1. **只读安装...

    win10 uwp 使用 asp dotnet core 做图床服务器客户端

    在本文中,我们将探讨如何利用Windows 10的UWP(通用Windows平台)应用程序与ASP.NET Core构建一个图床服务器的客户端。这是一个涉及到跨平台开发和云端图像存储管理的项目,旨在提供一种高效且灵活的方式来上传和...

    lindexi#lindexi.github.io#win10 uwp 异步转同步1

    如果需要反过来,把同步转异步,可以使用 同步方法转异步写你的代码使用Task.Wait 时需要小心死锁不会出现死锁的代码使用Task.Delay等待即使使用方法

    UWP应用示例

    通用Windows平台(UWP)是微软为Windows 10操作系统推出的一种应用程序开发框架。UWP应用旨在提供跨设备兼容性,可以在各种Windows 10设备上运行,包括桌面、手机、平板电脑、Xbox、Hololens等。"UWP应用示例"是一个...

    MVA(视频XML字幕转srt字幕)UWP应用

    【标题】"MVA(视频XML字幕转srt字幕)UWP应用"涉及到的主要技术领域是视频处理和字幕格式转换,尤其关注的是XML字幕与SRT字幕之间的转换,以及如何在UWP(Universal Windows Platform,通用Windows平台)环境下实现...

    通用 Windows 平台 (UWP) 应用指南

    作为核心版的一部分,UWP 现提供了一个可供在每个运行 Windows 10 的设备上使用的通用应用平台。借助此次突破,面向 UWP 的 应用不仅可以调用对所有设备均通用的 WinRT API,还可以调用特定于要运行应用的设备系列的...

    win10 moblie uwp qq5.6.1150.1000

    win10 moblie uwp qq5.6.1150.1000主程序,不含依赖程序

    win10应用商店uwp安装包

    win10应用商店安装包,Microsoft.WindowsStore_11804.1001.913.0_neutral_~_8wekyb3d8bbwe,可用于不带应用商店的安装

    Xamarin.Forms构建Windows10通用应用程序(UWP)

    在这个“Xamarin.Forms构建Windows10通用应用程序(UWP)”的主题中,我们将深入探讨如何利用Xamarin.Forms的技术特性来构建能够在Windows 10上运行的通用Windows平台(Universal Windows Platform,简称UWP)应用。...

Global site tag (gtag.js) - Google Analytics