添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
import android.app.AlarmManager;
import android.app.PendingIntent;
import android.app.Service;
import android.content.Intent;
import android.os.Handler;
import android.os.IBinder;
import android.os.SystemClock;
import java.util.Timer;
import java.util.TimerTask;
public class MyService extends Service {
    private Runnable runnable;
    private Handler handler;
    private int Time = 1000*3;//周期时间
    private int anHour =8*60*60*1000;// 这是8小时的毫秒数 为了少消耗流量和电量,8小时自动更新一次
    private Timer timer = new Timer();
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    @Override
    public void onCreate() {
        super.onCreate();
         * 方式一:采用Handler的postDelayed(Runnable, long)方法
        handler = new Handler();
        runnable = new Runnable() {
            @Override
            public void run() {
                // handler自带方法实现定时器
                System.out.println("33331");
                handler.postDelayed(this, 1000*3);//每隔3s执行
        handler.postDelayed(runnable, 1000*60);//延时多长时间启动定时器
         * 方式二:采用timer及TimerTask结合的方法
        TimerTask timerTask = new TimerTask() {
            @Override
            public void run() {
                System.out.println("99999998");
        timer.schedule(timerTask,
                1000,//延迟1秒执行
                Time);//周期时间
     * 方式三:采用AlarmManager机制
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        new Thread(new Runnable() {
            @Override
            public void run() {
                System.out.println("99999988");//这是定时所执行的任务
        }).start();
        AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
        long triggerAtTime = SystemClock.elapsedRealtime() + anHour;
        Intent intent2 = new Intent(this, AutoUpdateReceiver.class);
        PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent2, 0);
        manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pi);
        return super.onStartCommand(intent, flags, startId);
    @Override
    public void onDestroy() {
        super.onDestroy();


public class AutoUpdateReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent i = new Intent(context, MyService.class);
        context.startService(i);
}
记得注册广播和服务,建议使用方式三。 Android修行手册之Kotlin-【条件语句】、【循环控制】篇
众所周知,人生是一个漫长的流程,不断克服困难,不断反思前进的过程。在这个过程中会产生很多对于人生的质疑和思考,于是我决定将自己的思考,经验和故事全部分享出来,以此寻找共鸣!!!
【Android 异步操作】手写 Handler ( 循环者 Looper | Looper 初始化 | Looper 遍历消息队列 MessageQueue )
【Android 异步操作】手写 Handler ( 循环者 Looper | Looper 初始化 | Looper 遍历消息队列 MessageQueue )
《Android的设计与实现:卷I》——第3章 3.6init循环监听处理事件
本节书摘来自华章出版社《Android的设计与实现:卷I》——第3章,第3.5节。作者: 杨云君著.更多章节内容可以访问云栖社区“华章计算机”公众号查看。
《Android游戏开发详解》一1.8 控制流程第2部分——while和for循环
在前面的小节中,我们介绍了使用if和else语句块来产生代码分支。现在,我们来介绍两种类型的循环:while循环和for循环。循环允许我们执行重复性的任务。循环特别重要,没有它们,游戏将无法运行。