Могу ли я воспроизводить медиаплеер, используя Time в качестве триггера? - PullRequest
0 голосов
/ 25 марта 2019

Я хочу, чтобы приложение автоматически воспроизводило музыку в 10:00 и останавливало музыку в 10:00, но когда я запускаю приложение и жду до 10:00, музыка не воспроизводится, я должен перезапустить приложение, и музыка будет воспроизводиться, нокогда 10 вечера музыка автоматически останавливается.ребята, у вас есть идея, где проблема?

Заранее спасибо

Вот мой код:

Thread t = new Thread(){
                @Override
                public void run() {
                    try {
                        while (!isInterrupted()){
                            Thread.sleep(1000);
                            runOnUiThread(new Runnable() {
                                @Override
                                public void run() {                        
                                    long date = System.currentTimeMillis();
                                    SimpleDateFormat adf = new SimpleDateFormat("HH");
                                    String dataString = adf.format(date);
                                    int dateNow = Integer.parseInt(dataString);

                                    if(dateNow>9 && dateNow<22){
                                        mySong.start();
                                    }else {
                                        mySong.stop();
                                    }
                                }
                            });
                        }
                    } catch (InterruptedException e){
                    }
                }
            };
            t.start();

1 Ответ

0 голосов
/ 25 марта 2019

Ошибка в long date = System.currentTimeMillis(), поскольку она дает вам, I кавычка , разницу, измеряемую в миллисекундах, между текущим временем и полуночью 1 января 1970 года по Гринвичу.

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

DateFormat dateFormat = new SimpleDateFormat("HH");
Calendar cal = Calendar.getInstance();
int hour = Integer.parseInt(dateFormat.format(cal.getTime()));
...