android - 关于startService的一个神奇的问题
PHPz
PHPz 2017-04-18 09:13:36
0
3
575
  1. 场景:现在写了两个应用AB:

    A : 有一个Service:`com.test.MyService.class`
    B :onClicke点击事件中调起A中的服务。
    测试环境:魅族4,魅蓝3。
    
  2. 问题:

    1)在A程序运行的情况下,B程序运行下,B点击去调起 MyService
    服务,正常。
    
    2)在A程序被杀死的情况下,即没有运行,B程序点击去调起服务,
    不成功,没有任何的Log,Toast输出。
    
    3)在A程序被杀死的情况下,即没有运行,用ADB命令去调起服务:
    不成功,ADB输出,没有找到这个服务。
    
    4)把这个程序A放在/system/app/下,让它成为一个系统的应用,
    然后,在杀死程序的情况下,调起成功。
    
  3. 后续

    公司的大神说,他能直接调起来,不用放在/system/app/下。
    代码我查了好多次,我们两个的代码一样的。然后我注意到一点
    我们的手机系统不同,他的是华为,我的是魅族。
    
    有没有人跟我遇到一样的问题?求大神解释一下咯~
    
PHPz
PHPz

学习是最好的投资!

全部回覆(3)
左手右手慢动作

經過驗證,魅族系統是不支援應用層的服務被直接喚醒。

洪涛

我感覺你這個服務最好獨立在一個新進程:service進程中。服務保活或重連有些機制的,最簡單是讓onStartCommand回傳值是START_REDELIVER_INTENT。如果建立的Binder連接,Binder也有些重連機制的。更多的保活方式看網路上的文章,很多的

Peter_Zhu

我推斷是第三方系統防止喚醒做的操作,按原生的是可以調用起來的,不然service有什麼用.

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板