2017-02-21 160 views
-2

我做一個定時器的內部應用程序(在Studio),當計時器達到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上服務上報警的樣本,你可以添加你的邏輯和振動代碼https://developer.android.com/training/scheduling/alarms.html –

回答

0

這將超出活動生命週期,因爲它會去onPause()onStop()因此,您的代碼/應用程序將無法正常工作,您正在尋找的是一個將在沒有這些限制的情況下運行的服務。

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

乾杯。

+0

哦,沒關係。那麼我就會搞砸了。謝謝一堆! –

+0

當我介紹對象「氛圍」時,我稱之爲VIBRATOR_SERVICE:vibe =(Vibrator)getSystemService(Context.VIBRATOR_SERVICE); –

+0

非常不專業,剛從午餐回來。無論如何,你不僅缺乏專業精神,而且還需要努力研究,我已經指出你正確的方向,你所做的是不正確的。乾杯。 –