我创建了一个使用MvvmCross的Android应用程序,使用' Hot Tuna Starter Pack'来自NuGet。 并做了一些改变:
在生成的FirstView布局中,我添加了一个按钮
<Button android:layout_width="fill_parent" android:layout_height="wrap_content" local:MvxBind="Click ShowNextScreenCommand" android:textSize="40dp" />
在FirstViewModel中我添加了一个命令
public IMvxCommand ShowNextScreenCommand { get { return new MvxCommand(() => this.ShowViewModel<SecondViewModel>()); } }
然后我创建了第二个活动SecondView,为此我只是复制粘贴了FirstView.axml,FirstView.cs和FirstViewModel并重命名。 唯一的变化是命令导航回来:
public IMvxCommand ShowNextScreenCommand { get { return new MvxCommand(() => this.Close(this)); } }
我在设备上运行应用程序,并通过单击按钮在活动之间来回导航,并使用DDMS观察堆。
应用程序以15MB的分配堆开始,经过几次导航后,我点击了“原因GC”后分配的堆是32MB。在DDMS。
我花了更多时间在设备上的应用程序之间切换或保持设备空闲,但分配的堆没有减少。
我原本期望分配的内存被释放。 我猜它最终会成功吗?