Службы Android: START_STICKY не работает на Kitkat

Я использую службы в приложении для прослушивания того, сколько раз пользователь нажимает кнопку питания. Реализация работала нормально на всех устройствах. Но когда я тестировал приложение на Android Kitkat, я заметил что-то не так.

Как только я отмахиваюсь от приложения недавно, приложение перестает прислушиваться к кнопке питания.

Вот код, с которым я работаю:

public class Receiver extends Service {

    Notification notification;
    private static final int NOTIFICATION_ID = 0;
    NotificationManager manager;
    PendingIntent toOpen;
    Intent intent;
    private BroadcastReceiver POWER_BUTTON = new Powerbuttonrecceiver();

    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
        filter.addAction(Intent.ACTION_SCREEN_OFF);
        registerReceiver(POWER_BUTTON, filter);
        startNotify();
        return START_STICKY;
    }

    @Override
    public void onDestroy() {
        // TODO Auto-generated method stub
        unregisterReceiver(POWER_BUTTON);
        dismissNotification();
        super.onDestroy();
    }

    public void startNotify(){
        manager = (NotificationManager)getSystemService(Context.NOTIFICATION_SERVICE);
        int icon = R.drawable.ic_launcher_drop;
        CharSequence tickerText = "Service activated";
        CharSequence tickerContent = "Service is now on. You can press your power button and the app will listen to it. Tap to turn this feature off";
        intent = new Intent(Receiver.this, Options.class);
        toOpen = PendingIntent.getActivity(getApplicationContext(), 0, intent, 0);

        notification = new NotificationCompat.Builder(getApplicationContext())
        .setContentTitle(tickerText)
        .setContentText(tickerContent)
        .setSmallIcon(icon)
        .setOngoing(true)
        .setContentIntent(toOpen)
        .build();
        manager.notify(NOTIFICATION_ID, notification);
    }

    public void dismissNotification(){
        manager.cancel(NOTIFICATION_ID);
    }

}

Как можно заметить, я использую уведомление, чтобы показать, что служба активна. Что меня смущает, так это то, что после пролистывания из приложения Recents уведомление все еще остается, что является неактивнымBroadcastReceiver? или это ложно.

В приложенииonDestroy Я не вызывал никаких функций для регистрации или отмены регистрации, а также для остановки службы. Еще раз, эта проблема видна только в Android KitKat. Пожалуйста, если вы, ребята, знаете, что происходит. Помогу :)

ОБНОВИТЬЯ также заметил сPlay Music на Kitkat, когда я смахиваю его с приложения последней версии, музыка останавливается. Это ошибка на Киткат? Но сервисы звука / медиаплеера наSoundCloud работает, даже когда сильно ударил из приложения последние.

ОБНОВИТЬ: Зарегистрирован какВыпуск 63618 на андроиде выдают трекер. Прочитайте комментарии к проблеме для более подробной информации.

Ответы на вопрос(5)

Ваш ответ на вопрос