Andriod:安卓线程实现页面的自动跳转
复制一个工程,
比如说现在我们的Mainactivity.java要自动跳转到下一个页面怎么办?
如果把
//intert去设置要跳转的页面
Intent intent = new Intent(this, SecondActivity.class);
//跳转
startActivity(intent);
扔到上面去,你会发现
这个程序一运行我们根本就看不到第一个页面
你想要它自动跳转,它的逻辑是很简单的,加上一个sleep就好了
那么sleep在安卓中是在哪里呢?
他是这个线程这个类,里面的静态方法 Thread.sleep()
里面是个毫秒,我们来个3秒 Thread.sleep(3000);
这面的波浪线是什么?因为他可能产生一个受查异常 ,也就是说线程创建可能会崩溃
错误提示: Unhandled exception type InterruptedException
所以要加一个try catch
运行一下
什么都看不到,
三秒之后
它确实自动跳转了,但此之前我们并没有看见页面一的数据
原因是啥?
实际上安卓在启动app的时候有一个主要的UI线程
而我们这个sleep是在当前线程做出来阻塞的
那UI显示什么意思呢?他会不断刷新屏幕界面
你在人家不断刷新屏幕界面的时候,你做了睡眠一定会出问题的
UI线程一但sleep的话,就会造成我们刚才的效果,你是无法看到第一个页面的任何字符,因为UI界面被你弄睡眠了
既然要用到这种效果必须 sleep 但又不能在 UI 下面 sleep,你要在新线程里面sleep
新线程里面去sleep.另外启动一个线程,在3秒后启动一个新界面。不要在UI线程中sleep
那么如何在安卓(Java)中创建线程呢?
Thread t = new Thread();
这个线程有了,但是我还没有启动
Thread t = new Thread();//实例化了一个线程
如何用呢?
t.start();//启动线程
那么线程启动以后,你想让他干啥
pthread_create(); 启动一个C语言的线程
里面会有一些传参
pthread_create(*t1,NULL,(void*)fuc,NULL);
线程的ID号, 参数, 会涉及到回调函数
也就是c语言创建线程会去执行 fuc 这个函数
那Java创建线程,我们并没有看见所谓的函数
只是
Thread t = new Thread();//实例化了一个线程
t.start();//启动线程
那你启动线程,你要他干啥? 不知道
所以说实例化线程, Thread t = new Thread(); 这面需要一个接口
Thread t = new Thread(new Runnable() {
@Override
public void run() {
// TODO Auto-generated method stub
}
});
在这个run 里面添加你的活
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
在这个新线程里面延迟三秒
//intert去设置要跳转的页面
Intent intent = new Intent(this, SecondActivity.class);
//跳转
startActivity(intent);
三秒之后再去实现自动的跳转
this在当前的线程 Thread是不被识别的 this 改成 MainActivity.this
Intent intent = new Intent(MainActivity.this, SecondActivity.class);
思路:
先创建一个线程 Thread t = new Thread
然后线程启动 t.start();
那线程启动干呢? 你要在线程的构造方法里面 去给他一件事情,Runnable()是一个接口
你要去重写里面的 run 方法,run方法里面做的就是你真正要干的活
(不要在UI线程中sleep,UI被sleep暂停刷新了)
运行结果
三秒过后
Andriod:安卓线程实现页面的自动跳转相关推荐
- vue element table列表删除某一页的最后一条数据之后页面不自动跳到上一页
项目场景:element 分页器 提示:这里简述项目相关背景: 例如:项目场景:删除某一页的最后一条数据之后页面不自动跳到上一页 解决方案: <!-- 分页组件 --><el-pag ...
- 谷歌浏览器打开链接,如何不是覆盖当前页面而自动跳转到新标签页?
Google Chrome打开链接直接会把当前页面覆盖掉,使用体验比较差. 看到很多人都是用插件解决的,但是我感觉谷歌不会把这么重要的功能隐藏为不可设置吧,所以找了好久,终于找到了方法. 第一步,打开 ...
- Vuetify Carouse轮播图 图片切换导致页面总是自动跳转到轮播图位置
文章目录 begin !!! Solution1 Solution2 end begin vuetify carouse轮播图 的图片自动切换的时候, 会自动聚焦跳转到轮播图自身的位置. 这导致了一个 ...
- 微信跳转手机浏览器下载app和访问指定页面无法自动跳转的解决方案
在我们使用微信营销的时候,很容易碰到推广连接在微信内无法打开或无法下载app的情况.通常这种情况微信会给个提示 "已停止访问该网址" ,那么导致这个情况的因素有哪些呢,主要有以下三 ...
- 前端页面倒计时+自动跳转功能(setTimeout和setTimeInterval两种实现)
setTimeout实现 <!-- 8秒倒计时 --> <p><span id="time"></span>秒后自动跳转到百度< ...
- js实现进入页面后自动跳转到锚点
$(function(){ var url = window.location.toString();//进这个页面的url var id = url.split("#")[1]; ...
- html自动跳转手机,手机浏览网站自动跳转到wap页面的代码
手机访问网站域名时如果实现自动跳转到wap页面 ? 如何让用户输入wap手机网站的网址时自动跳转到wap网站 ? wap页面自动跳转的实现方式 ? 如何判断访客是否是移动设备访问,自动跳转到wap页面 ...
- html如何携带参数自动跳转页面
html携带参数自动跳转 项目背景: 实现目的: 实现方式 第一步:生成userId 第二步:跳转: 第三步:页面B接收参数 实现结果: 实现总结: 项目背景: 最近有一个项目,跳转页面的时候,不能让 ...
- 案例:5分钟自动跳转页面 监听单击事件 倒计时跳转
案例:5分钟自动跳转页面 点击跳转页面和自动跳转页面 动图展示: 代码展示: <p>案例:5分钟自动跳转页面</p> <button>直接跳转</button ...
最新文章
- 《Linux嵌入式实时应用开发实战(原书第3版)》——1.6 资源
- 深入浅出Docker(一):Docker核心技术预览
- Ajax 中XmlHttp 乱码 的解决方法 (UTF8,GB2312 编码 解码)
- Maven 多模块项目,多个root解决方法
- Oracle-Oracle SQL Report (awrsqrpt.sql/awrsqrpi.sql)生成指定SQL的统计报表
- DL之MaskR-CNN:基于类MaskR-CNN算法(RetinaNet+mask head)利用数据集(resnet50_coco_v0.2.0.h5)实现目标检测和目标图像分割(语义分割)
- 合并果子(洛谷-P1090)
- CVPR 2020|开源实时“人手-物体”姿态估计算法HOPE-Net
- java开发安全问题_Java 安全开发需要了解什么?
- ASP.NET Core 2.0和Angular 4:从头开始构建用于车辆管理的Web应用程序
- Spark配置启动脚本分析
- 也用C#做个视频监控客户端来玩玩
- Linux开发_GDB_dump_Core调试
- javascript学习之 小案例 (29)——js时钟
- 类型多样的游戏模型3d模型素材,速来收藏
- 881. 救生艇-快速排序加贪心算法
- 大学三方协议约定的服务器,大学生签订三方协议要注意
- 今天通过了 AWS 的 SAA 认证考试了
- matlab中提示m文件不在current folder下(实际上在)
- sql 取第一条数据