1

我想制作一次只能看到一个窗口的应用程序,以节省内存。假设我们有一个窗口,按下按钮后会显示另一个窗口,但前一个窗口被删除。如果在窗口回调函数中处理按钮按下,从该窗口函数内部删除窗口并在新窗口关闭后重新创建它是否安全?像这样的东西:

void callback(...) {
...
if (msgID == ENTER_KEY) {
  deleteMyself();
  showWindow2();
  createMyself();
}
...
}

如果这个不好,你能建议更好的方法吗?

4

1 回答 1

1

我认为这通常在桌面上是一个坏主意。所以你会失去用户输入的一切。并且根据您的应用程序,用户可能会混淆为什么选项对话框会关闭主窗口。

然而,在移动设备上,只有一个窗口是正常的(除非您使用对话框)。但是在这些情况下,所有输入都应该被存储,以便窗口可以恢复到它的旧状态。

一般来说,如果您在内存管理方面遇到问题,最好检查一下您是否在某些地方泄漏了内存,在大多数情况下,GUI 不需要这么多内存。

于 2013-02-23T07:04:52.277 回答