Android 延时操作(屏保)

 屏保的实现一般是由定时器与显示组件组成,逻辑一般是无用户操作,显示屏保,防止误触。

定时器选择一般采用Timer或者handle的延时逻辑处理,屏保的功能一般来说是对定时器的处理。

以下是所使用的两种定时器的具体使用方法,当然有更多屏保实现逻辑,这些只是我觉得方便一些。
 1、Timer与Handle协同用法

/**
 * 使用Timer(定时器)和TimerTask实现时间显示
 */
private Timer xyy_timer = null;
private Handler xyy_handler = null;
void xyy_restart() {
    xyy_timer = new Timer();
    xyy_timer.schedule(new TimerTask() {
        @Override
        public void run() {
            Message message = new Message();
            message.what = 1;
            xyy_handler.sendMessage(message);
        }
    }, 1000, 28800000);
    xyy_handler = new Handler() {
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case 1:
                    //此处处理定时任务,屏保在这里实现
                    break;
            }
            super.handleMessage(msg);
        }
    };
}

2、Handler

handler本身具有延时的写法

handler.sendEmptyMessage(1) //立即发送,进入queue
handler.sendEmptyMessageDelayed(1,10000)//立即发送,进入queue

由于handler的queue并不能只存在一个相同实例,而是会循环执行queue里面的message,所以需要用到handler的remove删除前面将要发送的message(1).

/**
 * 2分钟自动开启屏保
 */
private fun cancelHome() {
    handler.removeMessages(1)
    handler.sendMessageDelayed(handler.obtainMessage(1), 120000)//在handler中处理屏保
}

3、屏保显示

     1、popwindow

      2、dialog

      3、Activity

      4、Fragment

 

你可能感兴趣的:(android,studio,Android基础)