1

Motorola デバイスで実行されている .net コンパクト モバイル アプリケーション (デバイス OS は sdk 2.0 を使用する Windows モバイル 6.0) があります。

アプリケーションが実行されていて、デバイスを約 20 分間放置すると、デバイスはスリープ モードになります。電源ボタンをタップしてウェイクアップした後、デバイスは正常にウェイクアップしますが、アプリケーションがフリーズして応答しなくなることがあります。最後のフォーム ページはまだ表示されていますが、何もできません。

ただし、デバイスの残りの部分は応答します。タスクマネージャーからアプリケーションを閉じようとしても失敗します。アプリケーションは凍結状態で「アクティブ」のままです。

これを診断する方法はありますか?同様に、この問題をログに記録したり、デバイスを介して何が起こったのかを調べる特別な方法はありますか?

4

1 に答える 1

1

簡単で直接的な方法はありません。デバイスはサスペンドから抜け出し、中断したところからコードの処理を再開します。アプリがフリーズしている場合、一時停止/再開サイクルによって無効化されたハンドルを待機している可能性がありますが、それを見つける唯一の方法は、次の 2 つの方法を試すことです。

  1. ロギングを使用してコードをインストルメント化し、フリーズしたときにコード内の「どこで」発生しているかを絞り込むことができます。
  2. 同時に、機能 (サービス、スレッド、コード ベースで許可されているもの) を削除して、テスト対象の関数セットをさらに削減します。機能を削除して問題が解決した場合は、どこを見ればよいかがわかります。消えない場合は、そのコードのブランチ全体を必要なさらなる検査から除外したことになります。
于 2013-04-05T01:59:32.003 に答える