У меня возникла конкретная проблема, о которой я бы хотел рассказать. Вот мой код
Intent i = new Intent();
i.setDataAndType(media, mediaType);
startActivity(i);
Это начинает звуковое сопровождение для меня, и оно даже помещает элемент уведомлений в панель уведомлений о том, что это постоянная задача. Однако, если я нажму кнопку "Домой" или "Назад", текущая задача немедленно будет убита для меня. Я был смущен этим поведением.
Я нашел способ держать задачу в следующем: при запуске звуковой активности я перетаскиваю панель уведомлений и нажимаю элемент уведомления (который на самом деле просто показывает мне ту же активность снова), и когда я делаю это, он ведет себя соответственно. Когда я нажимаю кнопку "Домой", она продолжается. Когда я нажимаю кнопку "Назад", она продолжается. По какой-то причине, когда я нажимаю элемент уведомлений, запускается "правильное" намерение.
Я хочу, чтобы это поведение начиналось, когда я впервые запускал звук, потому что никто, использующий мое приложение, не вытаскивает панель уведомлений и не нажимает на элемент уведомлений, чтобы это нормально работало.
Используйте Service
. В частности, вы захотите вызвать startForegroundService()
в обратном вызове создания/запуска службы.