putExtra to Service class останавливается при закрытии приложения - PullRequest
0 голосов
/ 18 октября 2019

Я новичок в Java, у меня есть одна активность с именем LaunchApp.class и одна служба с именем MyService.class в AndroidStudio. Я сделал приложение таким образом, чтобы, когда приложение было полностью закрыто или удалено, служба продолжала нормально работать в фоновом режиме. Я посылаю переменную из LaunchApp.class в MyService.class через putExtra метод, как показано ниже:

// In  LaunchApp.class under onCreate method    
Intent intent = new Intent(LaunchApp.this,MyService.class);
intent.putExtra("myVar",loginName.getText().toString());
startService(intent);

Затем я получаю это в Service.class каккод ниже:

//under onStartCommand method
String sessionVar = intent.getStringExtra("myVar");
Toast.makeText(MyService.this, sessionVar, Toast.LENGTH_SHORT).show();

Код работает отлично, и я получаю эту строку "myVar". но когда приложение закрывается или удаляется с экрана, переменная останавливается и вызывает сбой приложения. И я думаю, что причина в том, что этот способ передачи переменной из этого Activity в Сервис, потому что, если я пытаюсь использовать локальную строковую переменную в MyService.class, приложение работает хорошо даже после полного закрытия. Пожалуйста, помогите в этом.

1 Ответ

0 голосов
/ 20 октября 2019

Я получил решение после поиска в разных источниках .. Чтобы продолжить получать значение переменной в Сервисе даже после закрытия приложения, вам нужно использовать

return START_REDELIVER_INTENT;

вместо

return START_STICKY;

в onStartCommand. Спасибо!

...