标签:ace 原因 字段 保留 dma round 教程 功能 对象
最近开始学习开发Android App,找了本教程,学了一些基本知识后,就开始着手做一个例子。
我始终觉得在做中学,可能会稍微快一点。很快,一个具有初步功能的App被我撸出来了。
在模拟器上运行,我发现了几个问题,现在在这里记录一下:
1.每一次运行,都会在虚拟机上生成两个一模一样的图标
原因:AndroidManifest.xml中注册的activity都写了如下代码:
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER">
</intent-filter>
解决方案:只保留MainActivity中的Intent-filter,其他注册的Activity中无需保留。
2.app在模拟器上只能运行一次,当按模拟器的物理返回键时,不能再次进入app。
原因:查看后台日志,发现如下信息:
Background sticky concurrent mark sweep GC freed 1438(100KB) AllocSpace objects, 0(0B) LOS objects, 10% free。
json model里面放了非可序列化的对象就会导致问题发生。
解决方案:
如果在json model里面放个Android的Activity或者adapter这类类型字段,变量声明前面一定要加transient,否则就是长期GC提示。
目前遇到这两个问题,后续继续更新。
标签:ace 原因 字段 保留 dma round 教程 功能 对象
原文地址:https://www.cnblogs.com/jiangzuomeng/p/11919550.html