如何在超过一定时间无交互的情况下,触发一个事件?

linuxyf 2015-07-16 05:33:39
系统已设置屏幕常亮,我想在程序运行中,当没有用户交互超过2分钟后,程序 自动显示另一个画面,如何实现?高人给个思路。
...全文
250 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
_deadline 2015-07-17
  • 打赏
  • 举报
回复
做个计时线程就ok了,并且在activity里的onTouch()监控,如果你是想显示屏保,有api的好像
JPF1024 2015-07-17
  • 打赏
  • 举报
回复
首先要知道怎么样是无响应,比如你的activity里面有一个按钮,点完按钮之后就可以开始计时,如果过了一分钟又按下了,那就要停止计时器。 反复来,可以使用Timer进行操作.

import java.util.Timer;
import java.util.TimerTask;

/**
 * @author puruidong
 * @version 2015-07-17
 */


public class Main {

    private Timer timer = null ;

    private Timer getTimer(){
        if(timer==null){
            timer = new Timer();
            timer.schedule(new TimerTask() {
                @Override
                public void run() {
                    System.out.println("---------------");
                }
            },2000);
        }
        return timer;
    }

    private void cancelTimer(){
        if(timer!=null){
            timer.cancel();
        }
    }



    public static void main(String[] args) throws InterruptedException {
        Main m   = new Main();
        m.getTimer();//需要在每次点击事件后调用这个.
        Thread.sleep(2000);//必须有这个才能正确输出.
        m.cancelTimer();//这个地方的终止,其实是不需要的,这里只是为了测试.
    }
}


hxq4882 2015-07-17
  • 打赏
  • 举报
回复
最好的方式是 alarm ,即使休眠也可以唤醒
peter_nj_RD 2015-07-17
  • 打赏
  • 举报
回复
用handle,onTouch的时候先取消上一次发送的消息再发送一个新的message,推迟两分钟执行。在收到这个消息的时候执行显示另一个画面的逻辑。
peter_nj_RD 2015-07-17
  • 打赏
  • 举报
回复
public final boolean sendEmptyMessageDelayed(int what, long delayMillis)
peter_nj_RD 2015-07-17
  • 打赏
  • 举报
回复
mHandler.removeMessages(MSG); mHandler.sendEmptyMessage(MSG);

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧