2017-02-21 153 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

非常不专业,刚从午餐回来。无论如何,你不仅缺乏专业精神,而且还需要努力研究,我已经指出你正确的方向,你所做的是不正确的。干杯。 –