Dernièrement, nous avons acquis un nouveau Galaxy S6 avec Android 5.1.1 et nous avons quelques problèmes avec le nouveau gestionnaire de mémoire Samsung SPCM qui l'accompagne. Il ferme agressivement le service d'arrière-plan de notre application, qui, bien que défini sur START_STICKY, ne redémarre pas.Traiter avec Samsung SPCM tueur
De plus, le service ne prend pas plus de 5 Mo de RAM, mais nous obtenons toujours le score le plus bas de l'algorithme SPCM et nous choisissons de le tuer.
C'est notre service:
Public class IncomingService extends Service {
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
super.onStartCommand(intent, flags, startId);
return START_STICKY;
}
@Override
public void onCreate() {
if (mPhoneListener == null) {
mPhoneListener = new CallStateListener();
TelephonyManager tm = (TelephonyManager) getApplicationContext().getSystemService(Context.TELEPHONY_SERVICE);
tm.listen(mPhoneListener, PhoneStateListener.LISTEN_CALL_STATE);
}
/**
* Listener for call states
* Listens for different call states
*/
private class CallStateListener extends PhoneStateListener {
@Override
public void onCallStateChanged(int state, String incomingNumber) {
// Doing something with incomingNumber
}
}
Et dans le manifeste:
<service
android:name="com.services.IncomingService"
android:enabled="true"
android:priority="999" >
</service>
Un journal de SPCM tuer nos services:
Force stopping com.special.app appid=10499 user=0: SPCM kill lowestscore package!
03-18 22:48:11.280 3562-3562/? I/ActivityManager: Killing 2279:com.special.app/u0a499 (adj 8): stop com.special.app cause SPCM kill lowestscore package!
03-18 22:48:11.280 3562-3562/? W/ActivityManager: Scheduling restart of crashed service com.special.app/com.services.IncomingService in 1000ms
03-18 22:48:11.280 3562-3562/? I/ActivityManager: Force stopping service ServiceRecord{27d2c408 u0 com.special.app/com.services.IncomingService}
Même si les États log ActivityManager il est de réordonner un redémarrage pour notre service, il ne sera jamais réellement redémarré.
Nous avons vu les mêmes journaux SPCM concernant d'autres applications (Facebook, TrueCaller, etc.) mais leurs services réussissent à redémarrer.
Pour résumer, nos questions sont les suivantes:
- Comment éviter SPCM de cibler notre application en tant que paquet lowestscore?
- Si nous avons été ciblés, comment nous assurer que notre service sera redémarré avec succès après avoir été tué?
- D'autres idées qui peuvent nous aider?
J'ai le même problème. Avez-vous résolu cela? – kakopappa
Nous avons réussi à mais essayé de nombreuses choses que nous ne sommes pas complètement sûr de ce qui a aidé :) Parmi les choses étaient: Diminuer la consommation de la mémoire de notre application. Nous supposons que SPCM ne nous a plus ciblés. Je te souhaite bonne chance! – Nom1fan