Итак, я пытался создать приложение для игрока c, и, несмотря на посещение всех страниц в stackoverflow, я все еще застрял в одной проблеме. Код работает нормально по большей части, но когда я нажимаю кнопку «Назад», чтобы закрыть приложение, кнопки действий перестают работать, даже если они работают нормально, когда я нажимаю кнопку «Домой». Я думаю, что приемник вещания становится незарегистрированным, когда приложение закрыто, хотя я этого не хочу. Вот код:
public BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getExtras().getString("actionname");
Helper.makeToast(context, action);
switch (action) {
case CreateNotification.ACTION_PREVIUOS:
//play previous
case CreateNotification.ACTION_PLAY:
if (isPlaying) {
//pause
} else {
// play
}
break;
case CreateNotification.ACTION_NEXT:
//play next
}
}
};
Это метод onresume для основной деятельности
@Override
protected void onResume() {
super.onResume();
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
registerReceiver(broadcastReceiver, new IntentFilter("TRACKS_TRACKS"));
startService(new Intent(getBaseContext(), OnClearFromRecentService.class));
}
}
Это служба
public class OnClearFromRecentService extends Service {
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
return START_STICKY_COMPATIBILITY;
}
@Override
public void onDestroy() {
super.onDestroy();
}
@Override
public void onTaskRemoved(Intent rootIntent) {
stopSelf();
}
}
В манифесте:
<receiver .services.OnClearFromRecentService" />
Итак, мои вопросы: автоматически ли регистрируется приемник при закрытии приложения? Если так, как я могу предотвратить это? Как сохранить работающий приемник при закрытии приложения?