Android:安排AsyncTask类在一分钟后运行

时间:2014-04-17 07:58:30

标签: android android-asynctask background-process

我有一个问题,我正在创建一个应用程序,我想在系统与azan时间匹配时在后台播放azan文件,azan应该开始播放是否用户正在使用任何应用程序屏幕。

我在Azan.java中创建了一个asynchTask类但是我不知道在哪里运行它以便它总是在一分钟之后运行以检查系统时间与祈祷时间,是否应该在应用程序的欢迎屏幕上运行或任何其他。需要帮助

 class azanBack extends AsyncTask<Void,Void,Void>{
 Azan azan= new Azan();
 Calendar now= Calendar.getInstance();
 int hour=now.get(Calendar.HOUR);
 int minute=now.get(Calendar.MINUTE);
 int am_pm=now.get(Calendar.AM_PM);
 String temp_time= hour+":"+minute+am_pm;
    @Override
        protected Void doInBackground(Void... arg0) {
            // TODO Auto-generated method stub
            azan.getTime();
            if(temp_time== azan.getPrayerTimes().get(0)){
                azan.fplayer.start();
            }else if(temp_time==azan.getPrayerTimes().get(2)){
                azan.zplayer.start();
            }else if(temp_time==azan.getPrayerTimes().get(3)){
                azan.aplayer.start();
            }else if(temp_time==azan.getPrayerTimes().get(5)){
                azan.mplayer.start();
            }else if(temp_time==azan.getPrayerTimes().get(6)){
                azan.iplayer.start();
            }
            return null;
        }

1 个答案:

答案 0 :(得分:1)

使用处理程序类在一段时间后运行代码

这是代码:

定义处理程序类的对象

private static final long GET_DATA_INTERVAL = 1000;
Handler hand = new Handler();

将此代码放入您的on create activity of activity:

hand.postDelayed(run, GET_DATA_INTERVAL);

将void run方法添加到主类

Runnable run = new Runnable() {
            @Override
            public void run() {

new azan().execute();
hand.postDelayed(run, GET_DATA_INTERVAL);


        };