Android 如何停止在Eclipse下运行的程序?

Android 如何停止在Eclipse下运行的程序?,android,eclipse,android-emulator,Android,Eclipse,Android Emulator,我找不到停止正在运行的程序的选项(无论是在调试模式还是发布模式下) 现在,我只需关闭仿真器即可停止程序(将控制权返回Eclipse) 有更好的方法吗?这样我就不需要关闭(并重新启动)仿真器了?在“调试”透视图中,选择“调试”下的应用程序根目录(活动线程列表所在),然后单击停止按钮。我知道您想在仿真器上停止应用程序。为此,您可以打开“设备”窗口(在“调试”透视图中),选择进程,然后按同一窗口上的“停止”按钮。请记住,在Android上,程序通常仅在完成()时“停止”,或者系统在需要内存时销毁它们。

我找不到停止正在运行的程序的选项(无论是在调试模式还是发布模式下)

现在,我只需关闭仿真器即可停止程序(将控制权返回Eclipse)


有更好的方法吗?这样我就不需要关闭(并重新启动)仿真器了?

在“调试”透视图中,选择“调试”下的应用程序根目录(活动线程列表所在),然后单击停止按钮。

我知道您想在仿真器上停止应用程序。为此,您可以打开“设备”窗口(在“调试”透视图中),选择进程,然后按同一窗口上的“停止”按钮。

请记住,在Android上,程序通常仅在完成()时“停止”,或者系统在需要内存时销毁它们。为什么要停下来?例如,您不需要停止修复/重新安装/重新测试

将断点添加到要停止的代码中,然后按F11在调试模式下运行它。

为我工作

Windows->打开透视图->其他…->DDMS

  • 在Android视图的左侧窗口中,您可以看到“设备”。应该有一个正在运行的应用程序列表(模拟器或物理设备)。 单击要关闭的应用程序。通常,名称是包的名称+应用程序的名称
  • 现在点击“停止”符号
  • 要返回正常视图,只需按下右上角的Java按钮。 您也可以按以下按钮进行操作:
    Windows->打开透视图->其他…->Java

    如果您觉得在透视图之间切换以停止程序很乏味(就像我做的那样),您可以通过选择在当前透视图中查看设备窗口

    Windows>显示视图>其他…>安卓>设备


    这个答案不涉及Eclipse,但是由于这个问题是在Google搜索停止运行的Android程序时出现的,所以我想提供一个命令行方法。运行
    adb shell
    ,找到要使用
    ps
    终止的进程的PID,例如我的是:

    u0_A462097 37 175520 19912 FFFFFFFF40037EBC S net.unternet.bleah.blarg

    因此,只要
    kill2097
    ,您就会看到主屏幕再次出现。

    图1-在研究这个答案的过程中,许多僵尸被杀死

    不建议在操作系统级别终止Android应用程序Java VM进程。不幸的是,这正是eclipse设备窗口“stop”所做的,System.exit()和shell“kill”命令也是如此

    这会破坏正常的应用程序生命周期方法,如onStop()、onDestroy()和finalize()

    许多应用程序需要这些方法才能优雅地退出(例如,如果它们使用传感器、MediaPlayer、均衡器、可视化工具等系统对象)

    如果在这些生命周期方法期间未显式调用release(),则这些系统对象将与系统资源上的僵尸死亡夹点挂起。见上文图1。这可能会阻止应用程序重新启动,甚至需要重新启动。这是不礼貌的方面

    唯一的解决方案是通过调用onStop()或onDestroy()或至少finalize()来确保始终干净地退出应用程序。调试器执行此操作,操作系统关闭时也执行此操作

    您可以将应用程序设置为陷阱SIG_HUP事件,以强制优雅地退出命令行

    只有在ANR(已经是僵尸)状态下才能杀死应用程序虚拟机。ANR必须固定。切勿部署可进入此状态的应用程序。这是非常粗鲁的

    您可以使用Google analytics和Play Store在部署中监控这些内容。你不希望愤怒的用户在因为你的僵尸应用程序而不得不重新启动后,给出单星ANR评论。非常糟糕

    记住Android就是Linux:把它当作一个真正的操作系统,尊重应用程序的生命周期,否则你肯定会面临可怕的僵尸启示录

    附言:如果你不喜欢僵尸的比喻,幻想曲怎么样

    参见图片: 1.点击DDMS; 2.选择当前应用程序; 3.点击“停止”

    非常感谢。你救了我的命。我会在7分钟内接受你的回答……:)添加我刚刚发现的另一种方法:在emulator中选择设置>应用程序>管理应用程序>(选择应用程序)>强制停止.Ya。这是另一种方式,但要达到目的需要时间,除非你在背景中有这样的背景。:)一个像VisualStudio中那样的停止按钮会非常好。呃。在项目创建之后刚刚启动应用程序,当单击停止按钮时,它没有终止进程,而是在logCat视口中启动了
    RemoteException发送setActive(false)通知
    ,谢谢。我读了@varun's后才明白你的指示+1@Android伊芙,啊,我很高兴这有帮助。对不起,不够清楚!没关系。尽管(也许是因为)在许多其他平台上进行了多年的开发,但我对Android开发完全迷失了方向。是的,这是迄今为止最简单的解决方案。(事实上,prob应该是公认的答案)。只有在突出显示线程而不是顶部的[Android应用程序]条目时,停止按钮才被禁用。这是一个很好的见解。多谢各位+1@Eve .. 我的荣幸。关于血淋淋的细节,不妨查一查。但这并不能真正回答问题。在我的例子中,我正在播放AudioTrack课程,并产生一系列声音。一直听正弦波真的很烦人。我必须去DDMS,找到正确的线程,选择它,然后找到停止图标。很蹩脚。你怎么能在不停止的情况下重置程序的状态呢?我注意到仿真器在几分钟左右才会再次运行你的程序(可能是因为它仍在运行)。当您需要进行一个小的编辑,然后在模拟器中快速检查它时,提前完成该操作非常方便。通常,您会进行一些小的编辑