У меня есть действие, которое я использую для запуска службы переднего плана, которая продолжает работать в фоновом режиме, даже когда действие закрыто.Я привязываюсь к этому сервису, так как хочу повторно использовать тот же сервис, когда действие остановлено и возобновлено.
MainActivity.java
//Service button click listener
startSvcButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopService(new Intent(MainActivity.this, ForegroundService.class));
startService(new Intent(MainActivity.this, ForegroundService.class));
bindService(serviceIntent, mConnection, Context.BIND_AUTO_CREATE);
moveTaskToBack(true);
}
});
В классе обслуживания сервис запускается какследующим образом: ForegroundService.java
startForeground(Constants.NOTIFICATION_ID.FOREGROUND_SERVICE, serviceNotification);
return Service.START_STICKY;
У меня проблема в том, что когда MainActivity
остановлен, вызывается unBind
, что хорошо, но когда я возобновляю MainActivity
и вызываю bindService
опять же, этого никогда не происходит.
Служба переднего плана работает, я снова звоню bindService
из onResume
действия, но mBound
и mService
остаются нулевыми, даже когда я принимаю async bindService
(я знаю, покацикл не очень хорош, но он предназначен для отладки. serviceConnection
в порядке.
MainActivity.class:
if (fsRunning) {
if (!mBound) {
bindService(serviceIntent, mConnection, Context.BIND_AUTO_CREATE);
}
do {
SystemClock.sleep(500);
} while (!mBound);
}
Как заставить службу переднего плана выполнить повторное связывание с MainActivity
послена onStop
активности и запуска new bindService
?