Сервис останавливается после уничтожения активности? - PullRequest
0 голосов
/ 21 марта 2019

Я пытаюсь создать очень простую службу, которая воспроизводит аудиофайл, помещая кнопку, чтобы ее onClick () -> запускала службу, которая, в свою очередь, воспроизводит звук.но когда я уничтожаю действие, песня останавливается (я не могу сказать состояние службы) [что я поместил тост в метод onDestroy в классе обслуживания, и он не вышел.]

Any One Can HELP? !!

AndroidManifest

  <service android:name=".ExampleService"
        android:enabled="true"
        android:exported="true"
        ></service>

ExampleService.java

public class ExampleService extends Service {
MediaPlayer mpService;
private final static String TAG="ExampleService";

@Override
public int onStartCommand(Intent intent, int flags, int startId) {
    mpService.start();

    return START_STICKY;
}
@Override
public void onCreate() {
    super.onCreate();
    mpService=MediaPlayer.create(this,R.raw.lwyashko);
    Toast.makeText(this,"*** STARTED *** ",Toast.LENGTH_SHORT).show();
}
@Override
public void onStart(Intent intent, int startId) {
    super.onStart(intent, startId);
}
@Override
public void onDestroy() {

    Log.d(TAG,"onDestroy was Called ");
    Toast.makeText(this,"Service Destroyed",Toast.LENGTH_SHORT).show();
}

@Nullable
@Override

public IBinder onBind(Intent intent) {
    return null;
}

}

MainActivity.java

   playService.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
        i=new Intent(getApplication(),ExampleService.class);
        startService(i);
        }
    });

Ответы [ 2 ]

0 голосов
/ 21 марта 2019

Обычно после запуска службы startService служба не будет уничтожена после закрытия действия.Однако если пользователь вручную выполнит очистку задачи, весь процесс APP будет закрыт, а служба остановится.

0 голосов
/ 21 марта 2019

Начиная с API 26, только приоритетным службам обычно разрешается работать без активности. Вы делаете сервис приоритетным, вызывая startForeground () внутри сервиса. Вам нужно будет создать и предоставить уведомление при звонке. Вот соответствующая страница документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...