0

Motorola EMDK と連携する Android アプリケーションを作成していますが、タイミング/スレッドの問題が発生しています。EMDK を使用して非常に特定の機能を実行するフラグメントを追加し、何が起こっているかをユーザーに通知する画面を表示し、約 15 秒後にアクティビティによってクリーンアップされるアクティビティがあります。

EMDK アクションが発生してから (この場合はデバイス クレードルのロックが解除されている)、「クレードルがロック解除されました」という GUI が表示されるまでに 1 ~ 2 秒の遅延があることに気付きました。

Android がフラグメントの画面への描画をどのように処理するかについていくつかの調査を行ったところ、「フラグメントが表示されたときに」 onResume が呼び出されることがわかりました。ただし、これは私の経験と一致しません。以下のコードが機能するはずだと私が理解している方法によると、画面が描画され、EMDKManager.getEMDKManager() メソッドが呼び出されます。これにより、EMDK サービスへのポインターが構築され、ロック解除を実行するための新しいスレッドが作成されます。

@Override  
public void onResume() {  
      super.onResume();  
      EMDKManager.getEMDKManager(getActivity().getApplicationContext(), this);  
}  

onResume() が完全に完了すると、つまり EMDKManager.getEMDKManager() もその呼び出しを終了すると、画面が描画されるように見えます。

フラグメントは、メソッドの 2 番目のパラメーターに必要な EMDKListener オブジェクトであるため、これを正しくスレッド化する方法を見つけるのに苦労しています。GUI を最初に、またはクレードルのロック解除と同時に描画する必要があります。

フラグメントの onViewDrawn() イベントに相当するものを取得するためにオーバーライドまたはインターフェースできる他のメソッドはありますか?

どうもありがとうございました。

4

2 に答える 2