在项目中遇到的一个要求:一段时间没有对屏幕进行操作就回到主页面(其实可以是任意页面)。
我的做法是
首先在app一进来的时候就启动一个服务,在服务中计数,根据这和计数值判断是否跳转回主页面
其次需要写一个baseActivity配合这个服务,所有需要定时跳回到主页面的都继承这个baseActivity,在baseActivity中重写dispatchTouchEvent事件(这里为什么是dispatchTouchEvent而不是ontouchevent呢,因为dispatchTouchEvent是我们点击之后第一个调用的,而ontouchevent可能会被拦截,也很容易被子类拿来重写导致不执行baseactivity的ontouchevent事件的),在其中改变服务中的计数值。
最后要讲的就是跳转的方式,使用intent,注意要setflag(Intent.FLAG_ACTIVITY_CLEAR_TOP);意思是如果activity栈中如果存在我们要跳转的activity就将其上的所有activity都pop出activity栈,如果没有就加到栈顶,相当于activty加载模式的singleTask,