2012-12-28 56 views
2

我有以下問題。當用戶關閉Windows商店應用程序時,我想要保存具有數據的文本文件。如何保存Windows應用程序關閉的數據?

用什麼方法,我應該寫這樣當關閉應用程序時,文件被保存?

+3

用戶不會關閉您的應用程序。尋找暫停事件。 –

+0

這意味着如果你走在左上角,右鍵單擊 - >關閉,應用程序實際上並沒有關閉?我認爲暫停是當你按下Windows按鈕。 – Mythul

+3

您正在等待太久才能保存數據。當Windows需要資源時,商店應用程序會被毫不客氣地殺死。當您被暫停時,您需要保存。 –

回答

5

This article描述了Windows應用商店應用的應用生命週期。

如果你看一下第一個數字,你可以看到,只有3個相關的應用程序生命週期事件:

  1. 已激活 - 凸起,當程序首先啓動
  2. 暫停 - 募集當程序被暫停(即,用戶返回到開始屏幕或其他應用)
  3. 恢復 - 凸起當將程序從它的暫停狀態被喚醒。

第四個轉換 - 「未運行」狀態 - 沒有這種通知事件。原因是:你不知道應用何時完全關閉。你也不應該 - 微軟希望你在從「正在運行」到「已暫停」的轉變中執行所有狀態保存邏輯。這樣,他們可以在他們認爲必要時釋放資源。

即使用戶強制終止程序(通過右鍵單擊它並從任務菜單中選擇「關閉」),您將在程序終止前正好進入「暫停」狀態10秒鐘。所以你可以放心,你的狀態保存邏輯將始終執行。

0

你真的不知道什麼時候該應用程序將完全關閉。你也不應該...

我不同意這一點 - 微軟正在從蘋果複製這個,我不知道爲什麼,我從來不喜歡蘋果的實施。

如果用戶更改您的應用程序,然後使用它的鍵盤或手勢,然後重新啓動它說,6秒後,所有的更改都將丟失關閉。

我沒有看到任何方式作爲開發人員來解決這個問題。無論誰決定閉合的事件(和退出按鈕)是邪惡的是一個白癡。

+0

我確實找到了解決這個問題的方法 - 當你得到一個CoreWindow :: Activated(CoreWindowActivationState :: Deactivate)事件時,你可以保存你的應用狀態。 – Henry

+0

含義你沒有真正閱讀我的整個答案。你的假設情況已經被解釋了。簡而言之,在程序暫停時保存你的狀態。您的程序始終保證在完全退出前暫停10秒。 – BTownTKD

相關問題