在模拟器上通过Android系统的Manage applications能看到running状态的应用。一般的应用都可以Force stop,包括系统自带的Emial,Messaging,Music。但是“Dialer”和“Dialer Storage”无法Force stop. 查看DDMS的log,发现实际上是先Force stop了应用和相关服务,然后马上又重新启动了。求解这种情况发生的原理是什么? 我大概看了下系统phone应用的源码也没找到原因,望高人指点啊!

解决方案 »

  1.   

    adb shell kill 这个来得更猛烈些!
      

  2.   

    多谢回复! 其实我的目的是想自己的应用实现像“Dialer”这样的效果,不能被force stop。
      

  3.   

    在init.rc中的服务可以。java这边的, 你看下 phone的android Manifest, 它有一堆 protectd-broadcast, 我想就是这个问题使得它能不被杀掉吧。我曾经想把phone给remove掉,当时将源代码中phone相关的都删掉了, 但只要将phone.apk放在系统中,它就会自动启动。
      

  4.   

    谢谢!你说的对我很有帮助! 我主要也是考虑JAVA这边。根据你说的情况,那问题肯定是在phone的代码里了。protected-broadcast 的意思好像是只允许当前App发送的广播,单凭这个应该不能使此应用不能被杀掉啊。
      

  5.   

    解决了散分。仔细看了phone的源码找到答案。AndroidManifest.xml中的application 属性android:persistent="true" 。
    貌似必须在源码中编译这个属性才有效。
      

  6.   

    请问各位,Phone的数字键盘布局文件放在哪里啊?就是拨号的那个界面。