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 ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。
win10 uwp 应用转后台清理内存的更多相关文章
- 2019-9-2-win10-uwp-应用转后台清理内存
title author date CreateTime categories win10 uwp 应用转后台清理内存 lindexi 2019-09-02 12:57:38 +0800 2018-2 ...
- Win10/UWP开发—使用Cortana语音与App后台Service交互
上篇文章中我们介绍了使用Cortana调用前台App,不熟悉的移步到:Win10/UWP开发—使用Cortana语音指令与App的前台交互,这篇我们讲讲如何使用Cortana调用App的后台任务,相比 ...
- Win10 UWP开发实现Bing翻译
微软在WP上的发展从原来的Win7到Win8,Win8.1,到现在的Win10 UWP,什么是UWP,UWP即Windows 10 中的Universal Windows Platform简称.即Wi ...
- win10 uwp MVVM 轻量框架
如果在开发过程,遇到多个页面之间,需要传输信息,那么可能遇到设计的问题.如果因为一个页面内包含多个子页面和多个子页面之间的通信问题找不到一个好的解决方法,那么请看本文.如果因为ViewModel代码越 ...
- win10 uwp DataContext
本文告诉大家DataContext的多种绑法. 适合于WPF的绑定和UWP的绑定. 我告诉大家很多个方法,所有的方法都有自己的优点和缺点,可以依靠自己喜欢的用法使用.当然,可以在新手面前秀下,一个页面 ...
- win10 uwp 渲染原理 DirectComposition 渲染
本文来告诉大家一个新的技术DirectComposition,在 win7 之后(实际上是 vista),微软正在考虑一个新的渲染机制 在 Windows Vista 就引入了一个服务,桌面窗口管理器 ...
- win10 uwp 手把手教你使用 asp dotnet core 做 cs 程序
本文是一个非常简单的博客,让大家知道如何使用 asp dot net core 做后台,使用 UWP 或 WPF 等做前台. 本文因为没有什么业务,也不想做管理系统,所以看到起来是很简单. Visua ...
- Win10 UWP开发系列:使用VS2015 Update2+ionic开发第一个Cordova App
安装VS2015 Update2的过程是非常曲折的.还好经过不懈的努力,终于折腾成功了. 如果开发Cordova项目的话,推荐大家用一下ionic这个框架,效果还不错.对于Cordova.PhoneG ...
- 【Win10 UWP】后台任务与动态磁贴
动态磁贴(Live Tile)是WP系统的大亮点之一,一直以来受到广大用户的喜爱.这一讲主要研究如何在UWP应用里通过后台任务添加和使用动态磁贴功能. 从WP7到Win8,再到Win10 UWP,磁贴 ...
随机推荐
- 201521123082 《Java程序设计》第1周学习总结
201521123082 <Java程序设计>第1周学习总结 标签(空格分隔): Java 1. 本周学习总结 0.初步了解Java语言及其发展历史和过程,同时也初步了解了Java具有跨平 ...
- 团队作业4——第一次项目冲刺(Alpha版本) Day5
首先和助教及老师表示抱歉,博客确实当时就写了,但是一直不算写好,因为这几天卡住了,预计实现的功能实现不了,进度跟不上,现在也在寻求解决方法. 1.站立式会议: 2. Leangoo任务分解图: 3.任 ...
- jQuery 简介,与js的对比
jquery可以说是js的封装,大多数情况下jquery比js简单,它们两个可以相互写对方的里面,使用jquery需要导入jquery文件. <script src="jquery-1 ...
- 火狐html5拖拽 弹出新页面解决办法
今天做项目时,需要实现一个拖拽排序的功能,遂想到了html5的拖拽,便开始查资料,写代码.功夫不复有心人,通过网上资料作参考,排序功能成功实现.谷歌浏览器测试,拖拽平滑,无问题.火狐浏览器测试时,却无 ...
- 实际用户ID,有效用户ID及设置用户ID
实际用户ID,有效用户ID和设置用户ID 看UNIX相关的书时经常能遇到这几个概念,但一直没有好好去理清这几个概念,以致对这几个概念一直一知半解.今天好好区分了一下这几个概念并总结如下.说白了这几个U ...
- 06jQuery-06-AJAX
1.JS的AJAX AJAX,Asynchronous JavaScript and XML,意思就是用JavaScript执行异步网络请求. 如果要让用户留在当前页面中,同时发出新的HTTP请求,就 ...
- 对Spring IOC的理解(转)
Ioc—Inversion of Control,即“控制反转”,不是什么技术,而是一种设计思想.在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在你的对象内部直接控制.如何理 ...
- Hibernate中的主键生成器generator
本文讲述Hibernate的generator属性的意义.Generator属性有7种class,本文简略描述了这7种class的意义和用法. [xhtml] view plaincopy <c ...
- [js高手之路]Node.js+jade+mongoose实战todolist(分页,ajax编辑,删除)
该系列文章索引: [js高手之路]node js系列课程-创建简易web服务器与文件读写 [js高手之路]node js系列课程-图解express+supervisor+ejs用法 [js高手之路] ...
- 再说AutoComplete
一.简述 昨天support一同事,帮她的客户做类似下面的效果(自动完成): 以前在搜房的时候,弄过这个,调用楼盘字典: 这是一个小功能,也是一个大功能.因为它可以做大,也可以做小. 二.搜房的Aut ...