首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Android中保持不带时间循环的监视时间

如何在Android中保持不带时间循环的监视时间
EN

Stack Overflow用户
提问于 2014-12-13 17:17:58
回答 2查看 109关注 0票数 1

我正在开发一个应用程序,早上可以在9:15AM10:30AM上播放某些声音,我已经完成了播放声音的工作,但在监控当前的安卓系统时间时,我面临着一些问题。

这是我在做的事,

我有一个数组,其中上午9:15和上午10:30存储为字符串。当我使用类获取系统的当前时间时,

代码语言:javascript
复制
Calendar cTime = Calendar.getInstance();

    public String currentTime() {
        String hour = cTime.get(Calendar.HOUR) + "";
        String mins = cTime.get(Calendar.MINUTE) + "";
        return hour+""+mins+"AM";
    }

我用这段代码播放声音,

代码语言:javascript
复制
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分,然后我运行应用程序,那么app会播放声音,但这不是我想要的,我希望我的应用程序一直在监控时间,当它的时间是上午9:15或上午10:30时,无论应用程序运行与否,声音都应该播放。

我尝试了一种方法,通过比较当前的时间与上午10:30或上午9:30在一个时间循环,但它挂我的手机,这似乎是丑陋的想法。我想不出任何其他方法来监控时间,请给我一些建议。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-12-13 17:29:03

AlarmManager计划在这些时间点获得控制。

票数 4
EN

Stack Overflow用户

发布于 2014-12-13 17:40:43

我认为你应该试试这些代码( Android )。

使用AlarmManager类来调度和执行您想要执行的操作/操作,而不管您的安卓应用程序的状态如何,不管它是否正在运行。

但是在应用这个概念之前,您应该详细了解这个类,因为它提供了两种类型的警报运行实时和实时时钟。

您将不得不使用BroadcastReceiver来接收意图。

如果您想使用循环,则应该使用以下代码(比java日历类更好)

Time t=新时间();t.setToNow();

或者更好的代码将是,因为现在你将得到你的用户的当前时区,所以给你;

时间t=新时间(Time.getCurrentTimezone();t .setToNow();

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27461552

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档