2015-03-10 2 views
0

Я делаю приложение, и я хочу предоставить пользователю возможность автоматически закрыть приложение в выбранный час с помощью Timepicker. Я knwo, что я должен использовать менеджер тревоги, но я не KNW горячим, чтобы совместить с timepicker и закрыть приложение с егоКак закрыть приложение в определенный час с помощью TimePicker

   @Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_contadorpro); 


    timePicker = (TimePicker) findViewById(R.id.timePicker); 
    button = (Button)findViewById(R.id.button); 
    button.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      Toast.makeText(getApplicationContext(), "Contador Activado", Toast.LENGTH_LONG).show(); 
      timePicker.clearFocus(); 
      final Calendar _calendar = Calendar.getInstance(); 
      final int hour = timePicker.getCurrentHour(); 
      final int minute = timePicker.getCurrentMinute(); 

      Thread _thread = new Thread() { 

       @Override 
       public void run() { 

        try { 

         Calendar _calendar = Calendar.getInstance(); 
         int _currentHour = _calendar.get(Calendar.HOUR); 
         int _currentMinute = _calendar.get(Calendar.MINUTE); 

         if(_currentHour == hour && _currentMinute == minute){ 

          System.exit(0); 

         } 

        } catch (Exception e) { 

         e.printStackTrace(); 

        } 

       } 

      }; 

      _thread.start(); 

     } 
    }); 



} 

}

+0

Что вы сделали до сих пор? – JacksOnF1re

+0

Возможный дубликат [Alarm Manager Example] (http://stackoverflow.com/questions/4459058/alarm-manager-example) – JacksOnF1re

+0

Не то же самое, я должен использовать диспетчер аварийных сообщений, но с помощью таймера, и мне нужно закрыть приложение с ним –

ответ

0

Вы можете получить время, используя

int hour = timePicker.getCurrentHour(); 
int minute = timePicker.getCurrentMinute(); 

Затем вы должны создать поток, чтобы проверить текущее время и время от TimePicker.

В то время, вы должны закрыть приложение, используя System.exit(0); НУ finish() ваша активность

переиздано:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_contadorpro); 

    timePicker = (TimePicker) findViewById(R.id.timePicker); 
    button = (Button)findViewById(R.id.button); 

    final Thread _thread = new Thread() { 

     @Override 
     public void run() { 

      try { 

       boolean _stopThread = true; 

       while (_stopThread) { 

        Calendar _calendar = Calendar.getInstance(); 

        int _currentHour = _calendar.get(Calendar.HOUR); 
        int _currentMinute = _calendar.get(Calendar.MINUTE); 

        int hour = timePicker.getCurrentHour(); 
        int minute = timePicker.getCurrentMinute(); 

        if (_currentHour == hour && _currentMinute == minute) { 

         _stopThread = false; 

         System.exit(0); 

        } 

       } 

      } catch (Exception e) { 

       e.printStackTrace(); 

      } 

     } 

    }; 

    button.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      // I edited here 
      if(!_thread.isAlive()) { 

       _thread.start(); 

       Toast.makeText(getApplicationContext(), "Contador Activado", Toast.LENGTH_LONG).show(); 

      } 

     } 
    }); 

} 
+0

Большое спасибо Леннону, он, наконец, работает;) Коллега сказал мне код, что поток не работает все время, когда я его получаю и проверю, я отредактирую –

+0

Пожалуйста, дайте ему голосов! ! –

+0

Я рад помочь вам: D. Поэтому, пожалуйста, дайте право в этом ответе людям, которые ищут что-то подобное. ;) –

Смежные вопросы