Android 多种延时实现方式

平时开发中会有到延时操作需求,在次记录一下延时的实现姿势:

1、Handler PostDelay

new Handler().postDelayed(new Runnable(){   
public void run() {   
    //execute your task   
    }   
 }, delaytime); 

2、开一个新的线程 

new Thread(new Runnable(){   
public void run(){   
    Thread.sleep(delaytime);   
    handler.sendMessage(); //execute your task
    }   
}).start 

3、使用定时器 

TimerTask task = new TimerTask(){   
public void run(){   
//execute your task 
  }   
};   
Timer timer = new Timer(); 
timer.schedule(task, delay); 

4、AlarmManager 定时发送任务

1)、定时发送广播

Intent intent = new Intent("com.pop.ClockReceiver");
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.HOUR_OF_DAY,23);
calendar.set(Calendar.MINUTE,15);
PendingIntent sender = PendingIntent.getBroadcast(context, 0, intent, 0);
AlarmManager am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), 1 * 1000, sender);

2)、清单文件中初始化广播接受者

 <receiver
        android:name=".receiver.ClockReceiver"
        android:enabled="true"
        android:exported="true"
        tools:ignore="ExportedReceiver" >
        <intent-filter>
            <action android:name="com.pop.BlockReceiver" />
        </intent-filter>
 </receiver>

3)、接收广播

public class BlockReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
    //excute your task
    }
}

猜你喜欢

转载自blog.csdn.net/caijinghuacaijinghua/article/details/89183096