Eclipseで実行されているプログラムを停止する方法


107

実行中のプログラムを停止するオプションが見つかりません(デバッグモードかリリースモードか)。

そのため、今のところ、エミュレーターを閉じるだけでプログラムを停止(Eclipseに制御を戻す)します。

これを行うより良い方法はありますか?エミュレータを閉じて再起動する必要がないように?

回答:


112

エミュレータでアプリを停止したいとのことでした。これを行うには、(デバッグパースペクティブで)デバイスウィンドウを開き、プロセスを選択してから、同じウィンドウの停止ボタンを押します。


1
本当にありがとう。あなたは私の命を救いました。私は7分であなたの答えを受け入れます... :)
Android Eve

1
発見したばかりの別の方法を追加します。エミュレータで、[設定]> [アプリケーション]> [アプリケーションの管理]>(アプリを選択)> [強制停止]を選択します。
Android Eve

Y A。それは別の方法ですが、バックグラウンドでそれがない限り、そこに到達するには時間がかかります。:)
Varun

11
Visual Studioのような[停止]ボタンは非常に便利です。うん。
Ian Davis

プロジェクトの作成直後にアプリを起動しただけで、停止ボタンをクリックしたときにプロセスRemoteException sending setActive(false) notification強制終了さ
Stphane

77

プログラムを停止するためにパースペクティブを切り替えるのが面倒だと思う人(私がしたように)を選択すると、現在のパースペクティブにデバイスウィンドウを表示できます

ウィンドウ > ビューの表示 > その他... > Android > デバイス


3
ありがとう、これはまさに私が探していたものです!+1
サボビン2013年

+1。素晴らしいです。もう一度実行したい場合は、デバイスからもう一度起動するだけで、完全に機能します。
フランシスココラレスモラレス

もう1つのステップとして、リストからpackageIDを見つけます。最初はそれで延期されましたが、「すごい!何でも見える!」みたいな感じでした。Androidの内部の様子を見て良かった(注:私はGenymotionシミュレータを使用しています。おそらくエミュレータがあなたの言うとおりです。実行が始まるのを待ちきれません)
Stephen J

これはAndroidアプリのライフサイクルに違反し、異常な終了を引き起こし、アプリを再起動できなくなり、デバイスを強制的に再起動して問題を解決できます。
Dominic Cerisano、2015年

13

Androidでは、プログラムは通常、メモリが必要な場合に、finish()またはシステムがプログラムを破棄した場合にのみ「停止」することに注意してください。なぜ停止するのですか?たとえば、修正/再インストール/再テストのために停止する必要はありません。


これは素晴らしい洞察です。ありがとうございました。+1
Android Eve

1
@Eve ..私の喜び。悲惨な詳細については、stackoverflow.com
questions / 2033914 /…を

4
まあ、多分。しかし、これは実際には質問の答えにはなりません。私の場合、私はAudioTrackクラスをいじって、サウンドのストリームを生成しています。常にその正弦波を聞くのは本当に面倒です。DDMSに移動し、適切なスレッドを探し、それを選択してから、STOPアイコンを見つける必要があります。とても下手です。
Vagrant

2
どのようにして停止せずにプログラムの状態をリセットできますか?
Erik Engheim 2012

エミュレータで気付いたのですが、数分後まで(おそらくまだ実行されているため)まで、プログラムは再度実行されません。小さな編集を行う必要がある場合は、早く終了してエミュレータですばやく確認すると便利です。また、多くの場合、いくつかの小さな編集を行っているため、実行中のアプリを停止して再読み込みしてすばやく確認できるため、多くの時間を節約できます。
Azurespot 2014年

12

「デバッグ」パースペクティブで、「デバッグ」の下のアプリケーションのルート(アクティブスレッドのリストがある場所)を選択し、停止ボタンをクリックします。


こちらこそありがとう。@varunを読んだ後、私はあなたの指示を理解しました。+1
Android Eve

@Android Eve、ああ、それが役に立てて嬉しいです。すみません、はっきりしていませんでした!
Chris Thompson

それで大丈夫です。他の多くのプラットフォームでの長年の開発にも関わらず(そしておそらくそのせいで)、Androidの開発に関しては完全に混乱しています。
Android Eve

はい、これは断然最も簡単な解決策です。(実際には、確率が受け入れられる答えである必要があります)。[停止]ボタンは、[Androidアプリケーション]の一番上のエントリではなくスレッドが強調表示されている場合にのみ無効になります。
コリン

7

私のために働いています。

Windows->パースペクティブを開く->その他...-> DDMS

  1. Androidビューの左側のウィンドウに、「デバイス」が表示されます。現在実行中のアプリケーション(エミュレーターまたは物理デバイス)のリストがあるはずです。閉じるアプリケーションをクリックします。通常、名前はパッケージの名前+アプリケーションの名前です。
  2. 「停止」のシンボルをクリックしてください。

通常のビューに戻るには、右上のJavaボタンを押すだけです。Windows->パースペクティブを開く->その他...-> Javaを押しても実行できます。


2

この答えはEclipseを扱っていませんが、この質問は実行中のAndroidプログラムを停止するためのGoogle検索で出てくるので、コマンドラインメソッドを提供したいと思います。実行してadb shell、強制終了するプロセスのPIDを見つけます。psたとえば、次のようにしました。

u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg

そうkill 2097すれば、メイン画面が再び表示されるはずです。


アプリのライフサイクル違反。システムリソースが解放されない問題が発生し、デバイスの再起動が強制的に解除される可能性があります。
ドミニクCerisano 2015年

0

停止するコードにブレークポイントを追加し、F11キーを押してデバッグモードで実行します。


0

Androidゾンビ 図1-この回答の調査中に多くのゾンビが殺された

OSレベルでAndroidアプリケーションのJava VMプロセスを強制終了することはお勧めしません。残念ながら、これは、System.exit()やシェルの「kill」コマンドと同様に、Eclipseデバイスウィンドウの「停止」とまったく同じです。

これは、onStop()、onDestroy()、finalize()などの通常のアプリのライフサイクルメソッドを覆します。

多くのアプリは、正常に終了するためにこれらのメソッドを必要とします(たとえば、センサー、MediaPlayer、イコライザー、ビジュアライザーなどのシステムオブジェクトを使用する場合)。

これらのライフサイクルメソッドの実行中にrelease()が明示的に呼び出されない場合、これらのシステムオブジェクトはシステムリソースのゾンビデスグリップと共にたむろします。図を参照してください。上記1。これにより、アプリの再起動が妨げられ、再起動が必要になる場合さえあります。それが不名誉な側面です。

唯一の解決策は、onStop()またはonDestroy()を呼び出すか、少なくともfinalize()を呼び出して、常にアプリをきれいに終了することです。デバッガーは、シャットダウン時のOSと同様にこれを行います。

コマンドラインから適切な終了を強制するために、SIG_HUPイベントをトラップするようにアプリを設定できます。

アプリVMを強制終了するのは、ANR(すでにゾンビ)状態にあるときだけです。ANRは修正する必要があります。この状態になる可能性のあるアプリをデプロイしないでください。それは非常に失礼です。

GoogleアナリティクスとPlayストアを使用して、これらの展開を監視できます。ゾンビアプリケーションが原因で、怒っているユーザーが再起動後にシングルスターのANRレビューを投稿することは望ましくありません。ひどい。

AndroidはLinuxであることを忘れないでください。実際のOSのように扱い、アプリのライフサイクルを尊重してください。そうでなければ、恐ろしいゾンビの黙示録に直面することになります。

PS:ゾンビのアナロジーが気に入らない場合、ファンタジアはどうですか?

ここに画像の説明を入力してください


0

画像を参照してください。1. DDMSをクリックします。2.現在のアプリを選択します。3. [停止]をクリックします ここに画像の説明を入力してください


これを行うと、アプリのデバッグが停止します。しかし、ケースがあります:1-USBからデバイスを切断し、アプリを実行してから、アプリがエラーに直面したときに閉じ、その後、実行ごとにデバッグフォームを表示し、USBケーブルが接続されるか、バックボタンが押されるのを待ちます。2-デバイスがUSBに接続してアプリを実行(Ctrl + F11)すると、自動的にアプリがデバッグモードで実行されます。これを解決するために、私は新しいプロジェクトを作成し、新しいプロジェクトにファイルを1つずつコピー/貼り付けましたが、同じことが再び起こります。今何か助け?
Ahmad Ebrahimi
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.