1

メモリを節約するために、一度に 1 つのウィンドウしか表示できないアプリケーションを作成したいと考えています。たとえば、1 つのウィンドウがあり、ボタンを押すと別のウィンドウが表示されますが、前のウィンドウは削除されます。ボタンの押下がウィンドウ コールバック関数で処理される場合、そのウィンドウ関数内からウィンドウを削除し、新しいウィンドウを閉じた後に再作成しても安全ですか? そんな感じ:

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

これが良くない場合、より良いアプローチを提案できますか?

4

1 に答える 1

1

これは一般的にデスクトップでは悪い考えだと思います。したがって、すべてのユーザー入力が失われます。また、アプリケーションによっては、オプション ダイアログがメイン ウィンドウを閉じる理由について、ユーザーが混乱する可能性があります。

ただし、モバイル デバイスでは通常、ウィンドウは 1 つだけです (ダイアログを使用する場合を除く)。しかし、そのような場合、ウィンドウを元の状態に戻すことができるように、すべての入力を保存する必要があります。

一般に、メモリ管理に問題がある場合は、どこかでメモリ リークが発生していないか確認することをお勧めします。ほとんどの場合、GUI はそれほど多くのメモリを必要としません。

于 2013-02-23T07:04:52.277 に答える