我找不到停止正在运行的程序的选项(无论是在调试模式还是在发布模式下)。
所以现在,我只需关闭模拟器即可停止程序(将控制权返回给Eclipse)。
有更好的方法吗?这样我不需要关闭(并重新启动)模拟器?
答案 0 :(得分:112)
我知道你想在模拟器上停止你的应用程序。为此,您可以打开设备窗口(在调试透视图中),选择该过程,然后在同一窗口中按停止按钮。
答案 1 :(得分:77)
那些在透视之间切换以停止程序(如我所做)的繁琐工作的人,可以通过选择
来查看当前视角中的设备窗口Windows > 显示视图> 其他...... > Android >设备
答案 2 :(得分:13)
请记住,在Android上,程序通常只有在完成()时才会“停止”,或者系统会在需要内存时销毁它们。为什么要停下来?例如,您无需停止修复/重新安装/重新测试。
答案 3 :(得分:11)
在“Debug”透视图中,在“Debug”(活动线程列表所在的位置)下选择应用程序的根目录,然后单击停止按钮。
答案 4 :(得分:7)
为我工作。
Windows - >开放视角 - >其他...... - > DDMS
要返回普通视图,您只需按下右上角的Java按钮即可。 你也可以按下: Windows - >开放视角 - >其他...... - >爪哇
答案 5 :(得分:2)
这个答案不涉及Eclipse,但由于这个问题出现在谷歌搜索中停止正在运行的Android程序,我想提供一个命令行方法。运行adb shell
,使用ps
找到要杀死的进程的PID,例如我的:
u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg
然后只有kill 2097
,您应该会看到主屏幕再次出现。
答案 6 :(得分:0)
在您要停止的代码中添加断点,然后按F11在调试模式下运行它。
答案 7 :(得分:0)
图1 - 在本答案的研究过程中,许多僵尸被杀害
建议不要在操作系统级别杀死Android应用程序Java VM进程。不幸的是,这正是eclipse设备窗口"停止"就像System.exit()和shell" kill"命令。
这颠覆了正常的应用程序生命周期方法,例如onStop(),onDestroy()和finalize()。
许多应用程序需要这些方法才能正常退出(例如,如果他们使用传感器,MediaPlayer,均衡器,Visualizer等系统对象)。
如果在这些生命周期方法期间未明确调用release(),则这些系统对象会在系统资源上出现僵尸死亡句柄。见图。 1以上。这可以防止应用重启,甚至需要重启。这是不合适的方面。
唯一的解决方案是确保始终通过调用onStop()或onDestroy()或至少finalize()来干净地退出应用程序。调试器执行此操作,关闭时操作系统也是如此。
您可以将应用程序设置为捕获SIG_HUP事件,以强制从命令行中正常退出。
你杀掉app VM的唯一一次是ANR(已经是僵尸)状态。 ANR必须修复。永远不要部署可以进入此状态的应用程序。这非常粗鲁。
您可以使用Google Analytics和Play商店在部署中监控这些内容。由于您的僵尸应用程序,您不希望愤怒的用户在重新启动后提供单星ANR评论。非常糟糕。
请记住,Android是Linux:将其视为真正的操作系统,并尊重应用程序的生命周期,否则你肯定会面对可怕的僵尸启示录。
PS:如果你不喜欢Zombie的比喻,Fantasia怎么样?
答案 8 :(得分:0)
见图: 1.点击DDMS; 2.选择当前应用; 3.点击“停止”