嗨,我想知道Android如何管理内存,我无法在任何地方找到准确的答案.假设我有一个应用程序在当前活动堆栈上有5个活动(4个被停止,1个被恢复),没有连接服务.我按下HOME按钮,以便停止所有活动.我启动了一些其他内存消耗应用程序,整体设备内存开始变低.问题是
......我的申请会怎样?
更新:
在提出这个问题之前,我已经看过几次Activity生命周期,但它没有我的问题的答案.我做了一些测试,我有一些答案.DDMS中的"停止过程"是测试的线索.
我没有测试问题1的答案,但正如指南所说:
如果某个活动暂停或停止,系统可以通过要求完成活动或仅删除其进程来从内存中删除活动.
似乎可以轻轻地销毁一个或多个活动(使用onDestroy方法)而不会终止进程.回到它们时,您将获得(onCreate + bundle).
问题2答案:
是.通常系统杀死整个过程,这意味着包括活动和静态字段在内的所有数据都被销毁.这样做不是很好 - 你不会为任何暂停/停止的活动获得onDestroy或finialize().这就是在onPause方法之前调用saveInstanceState()的原因.onPause基本上是你应该保存的最后一个方法,因为在这个方法之后你永远不会看到onStop或onDestroy.系统可以扼杀破坏所有物体的过程,无论它们持有什么以及它们正在做什么.
问题3答案:
当你回到被杀的应用程序时会发生什么?
通常,当用户从主屏幕重新选择该任务时,系统会在某些情况下清除任务(从根活动上方的堆栈中删除所有活动).通常,如果用户未访问任务一段时间(例如30分钟),则完成此操作.
结论?
那将是它...希望我帮助我的essey :)
大家好,这是我第一次使用 DDD/CQRS。我已经阅读了多种知识来源,但我仍然有点困惑,也许有人可以提供帮助:)
让我们假设一个简单的情况,我们有产品和客户(可能是不同的有界上下文)。客户可以购买产品,并且他希望查看他购买的所有产品。
在这种情况下,我意识到我需要一个UserPurchasesView视图模型:
现在...问题是我的域正在生成类似UserPurchasedProduct(userId, ProductId) 的事件。我可以用奖品、产品名称或其他东西来丰富活动,但不是所有领域。我已经到了这样一个地步:丰富似乎是错误的。
在这一点上,我意识到我需要类似ProductDetailsView的东西:
该视图由以下事件维护:ProductCreated、ProductRenamed、ProductImageChanged
现在我们有两个选择......
这些解决方案在我看来都不完美。我是错了吗,我错过了什么还是这只是做到这一点的方法?谢谢!