служба android останавливается и снова создается, когда я закрываю приложение

Я разрабатываю приложение, в котором я реализую службу. Но когда я выхожу из своего приложения, служба останавливается (но onDestroy() никогда не вызывается), а затем снова запускается ( OnCreate() ).

На самом деле, я не хочу останавливать службу после ее создания независимо от состояния приложения. Когда служба onCreate() получает вызов снова, служба теряет предыдущие обработанные данные. Я пробовал START_STICKY , но не повезло.

так, как я могу продолжать работать?

вот мой код обслуживания,

public class ddservice extends Service{

public void onCreate() {
    super.onCreate();
    Log.e("dservice", "onCreate");
                  /*here i am processing some important data in
                background thread*/  
    }

    @Override
    public void onDestroy() {
        super.onDestroy();
        Log.e("ddservice", "onDestroy");

    }

    @Override
    public void onStart(Intent intent, int startid) {
        super.onStart(intent, startid);
        Log.e("ddservice", "onStart");

    }

    public int onStartCommand(Intent intent, int flags, int startId) {
        super.onStartCommand(intent, flags, startId);
        Log.e("ddservice", "onStartCommand");

        return START_STICKY;
    }   


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


}//service class ends here

И я начинаю эту услугу от mainActivity,

startService(new Intent(this, ddservice.class));
1
добавлено отредактировано
Просмотры: 2
nl ja de
Можете ли вы добавить код, который вы используете для запуска службы?
добавлено автор Tapirboy, источник
Хм .. может быть связано? stackoverflow.com/questions/7211066/… Решено путем перезапуска ADB и эмулятора
добавлено автор Tapirboy, источник
@Tapirboy: просмотрите отредактированный вопрос.
добавлено автор dd619, источник
перезапуск ADB не работал.
добавлено автор dd619, источник
@Tapirboy: Спасибо за ваш weblink, запуск службы в отдельном процессе решил мою проблему.
добавлено автор dd619, источник

1 ответы

You should start your service as foreground Service.startForeground(int, Notification)

0
добавлено
можете ли вы поделиться кодом, как вы это сделали?
добавлено автор Vladimir Mironov, источник
onStart устарел с уровня API 5 и больше не вызывается. Вы должны поместить его в onCreate
добавлено автор Vladimir Mironov, источник
я реализую Service.startForeground (int, Notification), но вызывает ту же проблему.
добавлено автор dd619, источник
я помещаю stackoverflow.com/questions/3687200/… код в onStart ();
добавлено автор dd619, источник
Я помещаю его в onCreate (), но такую ​​же проблему.
добавлено автор dd619, источник