2017-11-30 1 views
1

사용자가 무음 모드에서 장치를 설정하고 타이머가 끝날 때 정상으로 돌아갈 수있는 응용 프로그램을 개발 중입니다. 지금까지는 장치를 자동 모드로 정상 모드로 되돌릴 수는 있지만 자동 모드가 활성화되기까지 지연이 있습니다. 지연 시간은 약 10 초 또는 15 초입니다. 나는 조용한 모드가 지연으로 활성화되는 이유를 이해하지 못한다. 아래는 start() 및 end() 시간 함수의 코드입니다.무음 장치에서 지연

시작() :

public void start() 
    { 

     Calendar cal=Calendar.getInstance(); 
    // simpleDateFormat=new SimpleDateFormat("hh:mm a"); 
    Date date = new Date(); 
    //String time=simpleDateFormat.format(date); 
    int hour=cal.get(Calendar.HOUR); 
    int minute=cal.get(Calendar.MINUTE); 

    timePickerDialog=new TimePickerDialog(MainActivity.this, new 
      TimePickerDialog.OnTimeSetListener() 
      { 

       @Override 
       public void onTimeSet(TimePicker view, final int hourOfDay1,final int minute1) { 
        Time time = new Time(hourOfDay1, minute1,0); 
        GregorianCalendar j2=new GregorianCalendar(hourOfDay1,minute1,0); 
        System.out.println(j2); 
        //little h uses 12 hour format and big H uses 24 hour format 
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("h:mm a"); 

        //format takes in a Date, and Time is a sublcass of Date 
        String s = simpleDateFormat.format(time); 
        start.setText(s); 


         //dp.getDayOfMonth(); 

        Calendar calNow = Calendar.getInstance(); 
        Calendar calSet = (Calendar) calNow.clone(); 

        calSet.set(Calendar.HOUR_OF_DAY, hourOfDay1); 
        calSet.set(Calendar.MINUTE, minute1); 
        Toast.makeText(MainActivity.this,"Starting Pending intent started",Toast.LENGTH_LONG).show(); 
        //final int _id = (int) System.currentTimeMillis(); 
        Intent intent = new Intent(getBaseContext(), SilenceBroadCastReceiver.class); 
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_1, intent, 0); 
        AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
        alarmManager.set(AlarmManager.RTC_WAKEUP, calNow.getTimeInMillis(), pendingIntent); 

        //final long sttimer=((shour)*60*60*1000)+((sminute)*60*1000); 


       } 
      },hour,minute,false); 
      timePickerDialog.setTitle("Set Start time"); 
      timePickerDialog.show(); 



} 

종료()

public void end(){ 
    Calendar cal1=Calendar.getInstance(); 
    //simpleDateFormat1=new SimpleDateFormat("hh:mm a"); 
    Date date1 = new Date(); 
    //String time=simpleDateFormat1.format(date1); 
    int hour=cal1.get(Calendar.HOUR); 
    int minute=cal1.get(Calendar.MINUTE); 

    secondtimepickerdialog=new TimePickerDialog(MainActivity.this, new 
      TimePickerDialog.OnTimeSetListener() { 
       @Override 
       public void onTimeSet(TimePicker view, final int hourOfDay1,final int minute1) { 
        Time time = new Time(hourOfDay1, minute1,0); 
        GregorianCalendar j3=new GregorianCalendar(hourOfDay1,minute1,0); 
        //little h uses 12 hour format and big H uses 24 hour format 
        SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("h:mm a"); 

        //format takes in a Date, and Time is a sublcass of Date 
        String s1 = simpleDateFormat1.format(time); 
        end.setText(s1); 

        Calendar calNow1 = Calendar.getInstance(); 
        Calendar calSet1 = (Calendar) calNow1.clone(); 

        calSet1.set(Calendar.HOUR_OF_DAY, hourOfDay1); 
        calSet1.set(Calendar.MINUTE, minute1); 
        Toast.makeText(MainActivity.this,"End Pending intent started",Toast.LENGTH_LONG).show(); 

        Intent intent = new Intent(getBaseContext(), UnsilenceBroadcastReceiver.class); 
        PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), RQS_2, intent, PendingIntent.FLAG_ONE_SHOT); 
        AlarmManager alarmManager = (AlarmManager)getSystemService(Context.ALARM_SERVICE); 
        alarmManager.set(AlarmManager.RTC_WAKEUP, j3.getTimeInMillis(), pendingIntent); 

        //final long sttimer=((shour)*60*60*1000)+((sminute)*60*1000); 


       } 
      },hour,minute,false); 
    secondtimepickerdialog.setTitle("Set End time"); 
    secondtimepickerdialog.show(); 

} 

답변

0

가 onTimeset (의 기능 모두에서 ...... 를 해결) 어떻게 든 지금 최종 키워드를 제거하고 지연이 사라지고 장치가 그 자리에서 침묵합니다.

관련 문제