如何停止在Eclipse下运行的程序?
我无法find停止正在运行的程序的选项(无论是在debugging模式还是释放模式下)。
所以现在,我只需closures模拟器即可停止该程序(将控制权返回给Eclipse)。
有没有更好的方法来做到这一点? 这样,我不需要closures(和重新启动)模拟器?
我知道你想停止在模拟器上的应用程序。 为此,您可以打开设备窗口(在debugging透视图中),select进程,然后在同一窗口上按停止button。
那些发现在视angular之间切换以停止程序的单调乏味的事情(就像我一样),您可以通过select当前视angular来查看设备窗口
Windows > 显示视图 > 其他… > Android > 设备
请记住,在Android上,如果你完成了(),程序通常只会“停止”,或者系统在需要内存时将它们销毁。 为什么要停下来呢? 例如,您不需要停下来修复/重新安装/重新testing。
在“debugging”的angular度,select“debugging”(活动线程列表)的应用程序的根,然后单击停止button。
为我工作。
Windows – >打开透视图 – >其他… – > DDMS
- 在Android视图中,在左侧窗口中可以看到“设备”。 应该有一个正在运行的应用程序列表(仿真器或物理设备)。 点击您要closures的应用程序。 通常名称是包裹的名称+申请的名称
- 现在点击“停止”的符号。
要回到正常的视图,只需按右上angular的Javabutton即可。 你也可以按下:Windows – > Open perspective – > Other … – > Java
这个答案不涉及Eclipse,但是因为这个问题出现在谷歌search停止正在运行的Android程序,我想提供一个命令行方法。 运行adb shell
,find你想用ps
杀死的进程的PID,例如我的是:
u0_a46 2097 37 175520 19912 ffffffff 40037ebc S net.unternet.bleah.blarg
所以然后kill 2097
,你应该看到主屏幕再次出现。
将断点添加到要停止的代码中,然后按F11在debugging模式下运行它。
图1 – 在这个答案的研究期间,许多僵尸被杀害
不build议在操作系统级别杀死Android应用程序Java VM进程。 不幸的是,这正是eclipse设备窗口“stop”所做的事情,System.exit()和shell“kill”命令也是如此。
这颠覆了正常的应用程序生命周期方法,如onStop(),onDestroy()和finalize()。
许多应用程序需要这些方法才能正常退出(例如,如果他们使用像Sensor,MediaPlayer,Equalizer,Visualizer等系统对象)。
如果在这些生命周期方法中没有明确地调用release(),那么这些系统对象就会在系统资源上缠着死亡僵尸。 见图。 1以上。 这可以防止应用程序重新启动,甚至需要重新启动。 这是不正确的方面。
唯一的解决办法是确保你总是通过调用onStop()或onDestroy()或至lessfinalize()来干净地退出你的应用程序。 debugging器执行此操作,就像closures操作系统一样。
您可以设置您的应用程序来捕获SIG_HUP事件,以强制从命令行中正常退出。
唯一一次你会杀死应用程序的虚拟机是在ANR(已经是一个僵尸)的状态。 ANR必须固定。 切勿部署可以进入此状态的应用程序。 这是非常粗鲁的。
您可以使用Google分析和Play商店在部署中监控这些情况。 你不希望生气的用户因为你的僵尸应用程序而必须重启后给予单星ANR评论。 很坏。
请记住,Android是Linux:将其视为一个真正的操作系统,并尊重应用程序的生命周期,否则你一定会面对可怕的僵尸启示录。
PS:如果你不喜欢僵尸的比喻,那么幻想曲呢?
见图:1.点击DDMS; 2.select当前应用程序; 3.点击“停止”
- 以编程方式滑动时更改ViewPageranimation持续时间
- 如何创build自定义的微调框,像微调框右边的三angular形边框?
- android:ViewPager和HorizontalScrollVIew
- 什么时候应该使用RxJava Observable,并在Android上进行简单的callback?
- 如何在listactivity列表中的button列表中激活onListItemClick?
- android:使用ActivityGroup来embedded活动
- 如何在Android中读取文本文件?
- 如何在Retrofit库中设置超时?
- Android Geocoder getFromLocationName总是返回null