1

Windows Mobile 上のアプリケーションで時折データ損失が見られます。デバイスがサスペンドしているときに、バッファリングされたデータの一部がディスクにフラッシュされていない可能性があります。デバイスがサスペンドしようとしているときに、手動でデータをディスクにフラッシュしたいと考えています。Windows では、メッセージをキャッチすることでこれを行いWM_POWERBROADCASTますが、このメッセージは Windows Mobile では利用できません。メッセージ ボードで次のような 2 年前の引用を見つけました。

再起床の*前に*サスペンドが通知されるとは*保証されていない*ことを認識する必要があります。つまり、デバイスが再起動されるまで通知を受信しない場合があります。一般に、この制限 (およびイベントに応答してできることの制限) があるため、サスペンドに反応しようとすべきではありません。

これは (まだ) すべてのデバイスに当てはまりますか? これを行う方法はありますか?

4

5 に答える 5

2

引用(本当に、本当によく知られているように聞こえます)はまだ真実です. サスペンド前に作業を完了できることが保証されている唯一のコンポーネントはドライバーであり、ドライバーにも重大な制限があります。

サスペンドの背後にある一般的な考え方は、アプリケーションに対して透過的であることであり、それを先取りすることは一般的に良い考えではありません。

于 2009-02-25T18:23:37.460 に答える
0

たぶん、このSOの質問への答えは助けになります:一時停止中にWindows Mobileでコードを実行するにはどうすればよいですか?

于 2009-05-27T19:54:32.747 に答える
0

OpenNETCFで公開されているイベントを使用してみましたか?私は主にWinCEの仲間ですが、デスクトップとモバイルデバイスの最も重要な違いの1つであるため、電源状態の変更を確実に通知しないプラットフォームをリリースする人がいるとは信じられません。

于 2009-02-25T17:41:36.780 に答える