android - 关于startService的一个神奇的问题
PHPz
PHPz 2017-04-18 09:13:36
0
3
571
  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

学习是最好的投资!

répondre à tous(3)
左手右手慢动作

Après vérification, le système Meizu ne prend pas en charge le réveil direct des services de la couche application.

洪涛

Je pense qu'il est préférable que votre service soit indépendant dans un nouveau processus : le processus de service. Il existe un mécanisme pour maintenir le service en vie ou se reconnecter. La méthode la plus simple consiste à laisser onStartCommand renvoyer la valeur START_REDELIVER_INTENT. Si une connexion Binder est établie, Binder dispose également de mécanismes de reconnexion. Pour plus de façons de rester en vie, lisez les articles en ligne, il en existe de nombreuses

Peter_Zhu

J'en déduis qu'il s'agit d'une opération effectuée par le système tiers pour empêcher le réveil. Elle peut être appelée nativement, sinon à quoi sert le service ?

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal