我可以使用“时间”作为触发来播放媒体播放器吗?

时间:2019-03-25 08:00:01

标签: android android-mediaplayer

我想让该应用在上午10点自动播放音乐,并在晚上10点停止播放音乐。但是,当我启动该应用程序并等到上午10点音乐无法播放时,我必须重新启动该应用程序,然后音乐才能播放,但是当晚上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 :(得分:0)

该错误出在long date = System.currentTimeMillis()中,因为它给了我quote我当前时间与1970年1月1日午夜之间以毫秒为单位的差异。

要获取当前时间,您可能需要改用以下代码

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