2

Eclipse で Android Virtual Device をロードし、ロック画面ではなくロードされたら、Eclipse ツールバーの [Debug] をクリックします。私のアプリは正常に動作します (最後の編集サイクルからのエラーを除いて、それがデバッグの目的です)。ただし、アプリを終了しようとした後 (メインの [only] アクティビティから [戻る] ボタンを押して - onBackPressed() の最後の行として finish() の呼び出しを実装しました。メイン アクティビティの [戻る] ボタンは暗黙的に finish() を呼び出します)、アプリを終了しないように見えます。

Eclipse デバッグ パースペクティブの [デバッグ] ペインには、引き続き次のものが表示されます。

MyAppName [Android application]
 DalvikVM[localhost:8619]   
  Thread [<1> main] (Running)
  Thread [<10> Binder_2] (Running)
  Thread [<9> Binder_1] (Running)

DalvikVM ラインがエミュレーターであると想定しています。私は自分のアプリで余分なスレッドを故意にスピンアップしていません (これまでのところ、ボタンのクリックなどで UI スレッドですべてを実行するだけの十分な計算を行っています)。

また、アプリが完全にシャットダウンされたと思って再度デバッグすると、デバッグ アイコンのツール ヒントは「Debug MyAppName (既に実行中)」となります。

Eclipse のデバッグ フックに関しては、finish() はアプリケーションを終了しませんか? または、アクティビティだけでなくアプリ全体が終了したことを Android に伝える「terminate()」のように動作するメイン アクティビティから呼び出す必要がある他のメソッドはありますか?

はい、Android アプリのプロセスは、通常のライフ サイクル中にデバイス上で実行されている場合、すぐには強制終了されないことを認識しています。出荷されたバージョンに関しては、アプリのプロセスストーンをコールドデッドにしたくないことに気づきました。if(DEBUG_MODE) trulyExit();ただし、これが永続的なデバッガーのタイインの原因である場合、Eclipse に何らかの方法で finish() の後に自動終了するように教えるか、何らかの方法で TrulyExit() をメインに実装することにより、少なくとも のようなものを実装したいと思います。デバッグ中にのみ使用されるアクティビティ。ですから、Eclipse を教える方法や を実装する方法についていくつかのヒントを得ることができればtrulyExit()、それは素晴らしいことです。

現在の私の回避策は、エミュレーターを毎回閉じることです。しかし、それがデバッグセッションを終了する方法だとは思えません...

関連する開発環境情報:

  • (OS:Windows 7 Professional)
  • IDE: Android 開発者ツール ビルド v22.0.1-685705
    • Google の ADT ダウンロードが提供するものを除いて、ADT Eclipse への追加/プラグインはありません。
  • テスト プラットフォーム: デバイスではなくエミュレータ
    • (私の物理デバイスの USB ポートは fritz にあります。タイインのデバッグが依然として誤動作するかどうかはわかりません。)
4

0 に答える 0