zoukankan      html  css  js  c++  java
  • 监听用户无操作之后跳转到另一个页面

     @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_paper_change);
    
            View decorView = getWindow().getDecorView();
            int option = View.SYSTEM_UI_FLAG_FULLSCREEN;
            decorView.setSystemUiVisibility(option);
            ActionBar actionBar = getSupportActionBar();
            actionBar.hide();
    
            initView();
            image.setImageResource(R.drawable.renminribao);
    
        }
    //new一个handle来计算无操作的时间
        private Handler mHandler = new Handler();
        private final Runnable mGotoOtherPageTask = new Runnable() {
            @Override
            public void run() {
                gotoOtherPage();
            }
        };
    
        @Override
        protected void onResume() {
            super.onResume();
            // 当前界面打开时,设置一个延迟自动执行的跳转任务
            postDelayTask();
        }
        @Override
        protected void onStop() {
            super.onStop();
            mHandler.removeCallbacks(mGotoOtherPageTask);//移除任务
        }
    
        
        @Override
        public boolean dispatchTouchEvent(MotionEvent event) {//此方法会检测到用户操作,但不会把点击事件吃掉,点击事件依然会正常执行下去
            int action = event.getAction() & MotionEvent.ACTION_MASK;
            switch (action) {
                case MotionEvent.ACTION_DOWN:
                    // 当发生触摸事件时,重新设置自动任务
                    postDelayTask();
                    break;
                default:
                    break;
            }
            return super.dispatchTouchEvent(event);
        }
    
        /**
         * 跳转到其他界面
         */
        private void gotoOtherPage() {
            Intent intent = new Intent(this, MainActivity.class);
            startActivity(intent);
        }
    
        private void postDelayTask() {
            // 先将之前的任务移除,如果存在的话
            mHandler.removeCallbacks(mGotoOtherPageTask);
            // 延迟5000毫秒执行跳转任务
            mHandler.postDelayed(mGotoOtherPageTask, 5000);
        }
  • 相关阅读:
    备忘asp.net core使用中间件实现IP白名单访问
    Unity asp.net 依赖注入框架Unity
    linunx命令学习_文件命令
    Css中的属性选择器
    Html页基础代码
    JSX简介
    Js对象与Json字符串的互转
    React中的函数式组件和类组件
    win文件夹上右键后以xx打开
    Java中的泛型1_泛型的概念
  • 原文地址:https://www.cnblogs.com/laoyimou/p/7501600.html
Copyright © 2011-2022 走看看