Телефон вибрирует с заблокированным экраном

Я делаю таймер внутри приложения (в студии), и когда таймер достигает 0, он вибрирует. Хотелось бы сделать так, чтобы телефон все еще вибрировал при заблокированном экране. Какие-либо предложения?

Вот моя основная деятельность:

    EditText timerWrite;
    ImageButton power;
    ImageButton check;
    TextView minsLeft;
    CountDownTimer countDownTimer = null;

    Vibrator vibe;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.home_screen);
        vibe = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);



    timerWrite = (EditText) findViewById(R.id.timerWrite);
    power = (ImageButton) findViewById(R.id.power);
    check = (ImageButton) findViewById(R.id.check);

    minsLeft = (TextView) findViewById(R.id.minsLeft);


    power.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view){
            vibe.cancel();
            if(countDownTimer != null)
                countDownTimer.cancel();
            minsLeft.setText("stopped");
        }
        });


    check.setOnClickListener(new View.OnClickListener(){
        @Override
        public void onClick(View view) {
            vibe.cancel();
            if (countDownTimer != null)
                countDownTimer.cancel();
            String text = timerWrite.getText().toString();

                if (!text.equalsIgnoreCase("")) {
                    int mins = Integer.valueOf(text);

                    countDownTimer = new CountDownTimer(mins * 60000, 1000) {

                        @Override
                        public void onTick(long milliseconds) {
                            long minutes = milliseconds / 60000;
                            long seconds = (milliseconds / 1000) % 60;
                            minsLeft.setText(getString(R.string.minutes) + (int) (minutes) + "  seconds:" + (int) (seconds));

                        }

                        @Override
                        public void onFinish() {
                            minsLeft.setText("Are You OK?");
                            long[] pattern = {0, 1000, 2000, 100};
                            vibe.vibrate(pattern, 1);
                        }
                    }.start();
                }
            }

    });
}

Спасибо!

1 ответ

Решение

Это было бы за пределами жизненного цикла Деятельности, так как onPause() а также onStop() следовательно, ваш код / ​​приложение не будет работать, вам нужна служба, которая будет работать без этих ограничений.

https://developer.android.com/guide/components/services.html

Приветствия.

Другие вопросы по тегам