我正在开发一款可以在9:15AM
和10:30AM
早上播放某些声音的应用,
我已经完成了声音部分的工作,但是在监视当前android系统时间时遇到了问题。
这是我在做什么
我有一个数组,其中9:15 AM和10:30 AM被存储为String。
当我使用Java Calendar类获取系统的当前时间时,
Calendar cTime = Calendar.getInstance();
public String currentTime() {
String hour = cTime.get(Calendar.HOUR) + "";
String mins = cTime.get(Calendar.MINUTE) + "";
return hour+""+mins+"AM";
}
我正在使用此代码播放声音,
public void playSound() {
MediaPlayer player = MediaPlayer.create(this, R.raw.s);
player.start();
player.setOnCompletionListener(new OnCompletionListener() {
@Override
public void onCompletion(MediaPlayer mp) {
mp.release();
}
});
}
问题是,
如果是上午9:15,并且我运行该应用程序,则该应用程序将播放声音;或者,如果是上午10:30,并且我运行该应用程序,则该应用程序将播放声音,但这不是事实。我想要,
我希望我的应用程序始终监视时间,并且在9:15 AM或10:30 AM时,无论应用程序是否运行,声音都应该播放。
我尝试通过比较当前时间与while循环中的10:30 AM或9:30 AM来尝试一种方法,但是它挂了我的电话,这似乎很丑陋。
我想不出其他任何方法来监视时间,请给我一些建议。
最佳答案
Use AlarmManager
计划在这些时间点获得控制权。
关于java - 如何在Android中保持监视时间而不会出现循环,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27461552/