2017-02-21 24 views
-2

Я делаю таймер внутри приложения (в студии), а когда таймер достигает 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(); 
       } 
      } 

    }); 
} 

Спасибо!

+0

Вот пример от Android на службе on Alarm, вы можете добавить свою логику и вибрировать код https://developer.android.com/training/scheduling/alarms.html –

ответ

0

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

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

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

+0

О, ладно. Тогда я буду возиться с этим. Огромное спасибо! –

+0

Когда я вводил объект «vibe», я вызываю VIBRATOR_SERVICE: vibe = (Вибратор) getSystemService (Context.VIBRATOR_SERVICE); –

+0

Очень непрофессионально, только что вернулся с обеда. В любом случае у вас не только отсутствие профессионализма, но и усилия по проведению исследований, я указал вам в правильном направлении, что вы делаете неправильно. Приветствия. –