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

다음은 Alarm on Service의 Android 샘플입니다. 로직을 추가하고 코드를 진동시킬 수 있습니다. 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 = (Vibrator) getSystemService (Context.VIBRATOR_SERVICE); –

+0

매우 전문적이지 않은 점심 도시락에서 돌아 왔습니다. 어쨌든 당신은 전문성이 부족할뿐 아니라 연구 노력도 부족합니다. 올바른 방향으로 지적했는데, 지금하고있는 일은 옳지 않습니다. 건배. –