Android关于界面一定时间无操作自动跳转到指定界面的实现
主要用到的功能,自定义一个定时器CountTimer继承CountDownTimer。
public class CountTimer extends CountDownTimer {
    private Context context;
    /**
     * 参数 millisInFuture       倒计时总时间(如60S,120s等)
     * 参数 countDownInterval    渐变时间(每次倒计1s)
     */
public CountTimer(long millisInFuture, long countDownInterval,Context context) {
        super(millisInFuture, countDownInterval);
        this.context=context;
    }
    // 计时完毕时触发
    @Override
    public void onFinish() {
        UIHelper.showMainActivity((Activity) context);
    }
    // 计时过程显示
    @Override
    public void onTick(long millisUntilFinished) {
    }
}
方法很简单,只需要在onFinish()方法中执行计时完毕的操作。
接下来在需要在执行的类里调用该方法。
这里我封装了一个类。
public class BaseDispatchTouchActivity extends AppCompatActivity{
    private CountTimer countTimerView;
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        init();
    }
    private void timeStart(){
        new Handler(getMainLooper()).post(new Runnable() {
            @Override
            public void run() {
                countTimerView.start();
            }
        });
    }
    private void init() {
        //初始化CountTimer,设置倒计时为2分钟。
        countTimerView=new CountTimer(120000,1000,BaseDispatchTouchActivity.this);
    }
    /**
     * 主要的方法,重写dispatchTouchEvent
     * @param ev
* @return
*/
@Override
    public boolean dispatchTouchEvent(MotionEvent ev) {
        switch (ev.getAction()){
            //获取触摸动作,如果ACTION_UP,计时开始。
            case MotionEvent.ACTION_UP:
                countTimerView.start();
                break;
            //否则其他动作计时取消
            default:countTimerView.cancel();
                break;
        }
        return super.dispatchTouchEvent(ev);
    }
    @Override
    protected void onPause() {
        super.onPause();
        countTimerView.cancel();
    }
    @Override
    protected void onResume() {
        super.onResume();
        timeStart();
    }
}												
											Android关于界面一定时间无操作自动跳转到指定界面的实现的更多相关文章
- 自定义android程序一段时间无操作后的功能
		
项目中遇见一个这样的需求,就是当软件在一定时间没有操作时候需要弹出广告页面,当点击广告页面时又进行软件操作,也就是广告要在软件打开并且处于未操作状态才会出来. 方法一:用handler+onTouch ...
 - Web页面长时间无操作后再获取焦点时转到登录界面
		
今天开始讲新浪博客搬到博客园. 在工作中遇到的小问题,感觉有点意思,就记录下来吧! 该问题分为两种情况,一.Web页面长时间无操作后,在对其进行操作,比如点击“首页”.“设 ...
 - secureCRT无操作自动登出时间修改(亲测可用)
		
转自:http://blog.sina.com.cn/s/blog_6bcf42010102vlt9.html secureCRT连接机器经常会因为一段时间无操作就退出了,提示timed out wa ...
 - WPF:鼠标长时间无操作,窗口隐藏
		
//设置鼠标长时间无操作计时器 private System.Timers.Timer MouseTimerTick = new System.Timers.Timer(10000); private ...
 - Android由一个activity 间隔5秒自动跳转到另外一个activity
		
Android由一个activity 间隔5秒自动跳转到另外一个activity 2013年10月10日18:03:42 //一.写一个定时器 5秒后开启 final Intent lo ...
 - ssh一段时间无操作后自动断开连接(假死)问题
		
平时使用ssh远程服务器的时候(注:远程虚拟机一般不会有这个问题),一段时间没有操作,ssh连接就会处于假死状态,以至于需要重新进行ssh连接,不管你用的什么远程工具都会出现这个问题,那么通过心跳检测 ...
 - WinForm触摸屏程序功能界面长时间不操作自动关闭回到主界面 z
		
操作者经常会在执行了某操作后,没有返还主界面就结束了操作然后离开了,程序应该关闭功能窗体自动回到主界面方便下一位操作者操作.那么对于WinForm程序怎么实现呢? 实现原理:拦截Application ...
 - android中 检查网络连接状态的变化,无网络时跳转到设置界面
		
1:在AndroidManifest.xml中加一个声明 <receiver android:name="NetCheckReceiver"> <inten ...
 - 解决SSH连接linux时长时间不操作自动断开
		
最近重装Linux系统,但是这次ssh连接云服务区Linux系统时,经常出现一段时间不操作,连接自动中断,表现为光标还在闪动,但是却无法操作.只好关闭终端,重新连接,很是麻烦. 为此,通过网络查找,找 ...
 
随机推荐
- ipv6地址在URL中的表达方式,如何在URL地址中包含ipv6地址
			
摘要 本文档定义了在WWW浏览器的URL中执行的文本IPv6地址的格式.在包括Microsoft的IE,Mozilla和Lynx等几个已经被广泛安装使用的浏览器的IPv6版本中,这种格式已经被使用.并 ...
 - python常用函数 I
			
iter(iterable) 可以生成一个迭代器. 例子: islice(iterator, int, int) itertools的islice方法为迭代器生成器提供切片操作. 例子: izip_l ...
 - nutz包的学习
			
参考资料: 1.http://www.nutzam.com/core/nutz_preface.html
 - Vue:列表渲染 v-for on a <template>
			
类似于 v-if,你也可以利用带有 v-for 的 <template> 渲染多个元素.比如: <html> <head> <title>Vue v-f ...
 - [CentOS]安装软件:/lib/ld-linux.so.2: bad ELF interpreter 解决
			
错误:/usr/local/bin/rar: /lib/ld-linux.so.2: bad ELF interpreter: No such file or directory 解决:是因为64位系 ...
 - ASP.NET Core中的依赖注入: 构造函数的选择与服务生命周期管理
			
ServiceProvider最终提供的服务实例都是根据对应的ServiceDescriptor创建的,对于一个具体的ServiceDescriptor对象来说,如果它的ImplementationI ...
 - 5G如何让智能手机再次变得丑陋?
			
第一批5G移动终端将于明年到货,这意味着智能手机制造商现在正在研究细节.与过去十年智能手机所看到的很多其他组件改进不同,像更好的相机,更快的处理器和更亮的屏幕,5G无线电将需要一些设计上的妥协,而且看 ...
 - Win7 ODBC驱动 Excel (转)
			
“控制面板-管理工具-数据源(ODBC)”,打开“ODBC数据源管理器”窗口,然后“添加”,打开“创建新数据源”的窗口,最后选择Microsoft Access Driver(*.mdb)选项,往后等 ...
 - vs2005下opengl(glut)的配置记录
			
摘自:http://blog.csdn.net/joeblackzqq/article/details/6956959 首先参考了网上的安装配置环境部分:http://blog.csdn.net/Id ...
 - C#读取csv、xls、sql数据库的实现
			
using System; using System.Data; using System.Configuration; using System.Web; using System.Web.Secu ...