Поддерживайте IntentService, когда приложение убито - PullRequest
0 голосов
/ 24 апреля 2020

Я пытаюсь оставить таймер включенным в фоновом режиме, даже когда приложение убито (соскользнуло с домашнего экрана). мне нужно продолжать выполнение кода в методе onHandleIntent. Это то, что я пробовал

TimerService extends IntentService {

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        super.onStartCommand(intent, flags, startId);
        return START_STICKY;
    }

    @Override
    protected void onHandleIntent( Intent intent) {

        if(intent==null){
            int time = 5;
            for(int i=0; i<time; i++){
                Log.i("timer","i (intent is null)= "+i);
                try{
                    Thread.sleep(10000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }
            }


            return;
        }
        int time = intent.getIntExtra("time",0);
        for(int i=0; i<time; i++){
            Log.i("timer","i (intent is not null)= "+i);
            try{
                Thread.sleep(10000);
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }


public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        Intent intent = new Intent(this,TimerService.class);
        intent.putExtra("time",20);
        startService(intent);
    }
}

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