Я получаю следующее исключение от Device Monitor
:
//FATAL EXCEPTION: main
//Process: com.xxx.yyy, PID: 11584
//android.app.RemoteServiceException: Context.startForegroundService() did not then call Service.startForeground()
// at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1881)
// at android.os.Handler.dispatchMessage(Handler.java:105)
// at android.os.Looper.loop(Looper.java:164)
// at android.app.ActivityThread.main(ActivityThread.java:6944)
// at java.lang.reflect.Method.invoke(Native Method)
// at com.android.internal.os.Zygote$MethodAndArgsCaller.run(Zygote.java:327)
// at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1374)
У меня в приложении 4 службы, и все они в основном выглядят так:
public class MyService extends Service {
private static final int forgroundId = 55544433; //Unique for each Service
private Notification notification;
@Override
public void onCreate() {
super.onCreate();
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
initNotification(); //Creates a notification
startForeground(forgroundId, notification); //Start foreground, very first thing..
//Do Stuff
return START_STICKY;
}
}
Для запуска сервисов я использую следующее:
Intent i = new Intent(context, MyService.class);
i.SetAction("myaction..");
i.PutExtra(...);
android.support.v4.content.ContextCompat.startForegroundService(context, i);
У меня есть несколько других библиотек, в которых также могут быть запущены службы, включенные в мой проект:
- Fabric.io
- Firebase Messaging / Analytics / пр.
- Сервисы Google Play Analytics / GCM / Задачи / и т. Д.
- Android-Job от Evernote
Проблема в том, что я не могу точно определить, какой сервис вызывает эту ошибку. Если бы класс был включен в исключение, меня бы здесь не было ...
Есть ли в любом случае [ловить / бросать / я не знаю ] какой-либо намек на то, откуда исходит исключение?
Я прочитал все следующие посты без всякой удачи:
Это происходит только иногда при открытии приложения, поэтому мне мой код правильный?
Я только хочу знать, как выяснить, из какой службы это происходит.