android实现App活动定时自动跳转效果
作者:小黄鸭会发光丶 发布时间:2022-06-30 06:32:06
标签:android,定时跳转
App的小功能点,很简单几十行代码就可以实现
主页面代码
package com.buildingbuilding;
import android.content.Intent;
import android.os.Handler;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.WindowManager;
import android.widget.TextView;
import com.buildingbuilding.activitys.BuildingActivity;
public class MainActivity extends AppCompatActivity {
private TextView textView;
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what != 0) {
textView.setText(msg.what + "秒后进入APP");
} else {
Intent intent = new Intent(MainActivity.this, BuildingActivity.class);
startActivity(intent);
finish();
}
}
};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
}
private void init() {
//全屏显示
getSupportActionBar().hide();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
textView = (TextView) findViewById(R.id.textView);
textView.setText("布丁布丁");
new CountDown().start();
}
//进入APP倒计时
class CountDown extends Thread {
int count = 3;
@Override
public void run() {
try {
while (count >= 0) {
sleep(1000);
Message message = new Message();
message.what = count;
handler.sendMessage(message);
count--;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
}
基本思路就是,通过一个计时线程来控制主线程(即UI线程)来更新UI
通过Handler来接受来自计时线程的Message
private Handler handler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.what != 0) {
textView.setText(msg.what + "秒后进入APP");
} else {
Intent intent = new Intent(MainActivity.this, BuildingActivity.class);
startActivity(intent);
finish();
}
}
};
2.计时线程(内部类),设置每隔1秒睡一次,共3秒
//进入APP倒计时
class CountDown extends Thread {
int count = 3;
@Override
public void run() {
try {
while (count >= 0) {
sleep(1000);
Message message = new Message();
message.what = count;
handler.sendMessage(message);
count--;
}
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
3.最后别忘了在init()方法中启动线程
private void init() {
//全屏显示
getSupportActionBar().hide();
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
textView = (TextView) findViewById(R.id.textView);
textView.setText("布丁布丁");
new CountDown().start();
}
OK,现在基本都完成了,来看效果
来源:http://blog.csdn.net/zf1228/article/details/55271828


猜你喜欢
- 使用Kotlin的Lambda表达式,我们可以抛弃回调接口的使用。只需设置希望后面会被调用的函数即可。示例如下新建一个Kotlin类clas
- 问题现象:HTTP Status 403-Invalid CSRF Token 'null' was found on th
- JAVA多线程断点下载原理如图:代码如下:import java.io.BufferedReader; import java.io.Fil
- 1、很多资料说,添加以下代码,可以隐藏地址栏,但我试了很多次,貌似不成功啊。<meta name="apple-mobile
- 通过MAVEN完成 Mybatis 逆向工程1. POM文件中添加插件在 pom 文件的build 标签中 添加 plugin 插件和 数据
- 前言:时间过得真是快,现在已经是2022年了。作为开发来说,时间处理是非常繁琐的。从Java 8开始有了Java 8 T
- 协议做如下规定:规定数据协议:序列号 长度 状态字 数据长度 数据1 &n
- Spring框架七大模块简单介绍Spring中MVC模块代码详解Spring的WEB模块用于整合Web框架,例如Struts1、Struts
- 在使用struts多模块的,找到一些小技巧和经验,与大家分享一下。 关于多module的配置就不说了,只需要用不同的config
- 前言:本文源码基于spring-framework-5.3.10。mvc是spring源码中的一个子模块!一、RequestMappingH
- 在Web的应用方面有js的插件实现自动完成(或叫智能提示)功能,但在WinForm窗体应用方面就没那么好了。TextBox控件本身是提供了一
- 1. 背景我们都知道,Compose可以使用mutableStateOf和UI进行绑定,改变值之后,就可以改变UI。var value by
- 这篇文章主要介绍了如何使用Spring工具类动态匹配url,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要
- AutoRestEvent 类用于从一个线程向另一个线程发送通知。微软文档是这样介绍的:表示线程同步事件在一个等待线程释放后收到信号时自动重
- 最近在做学校的课程设计,java编程需要用到对话框弹出,第一反应是js中的alert和confirm,java的话瞬间懵,查阅学习总结如下,
- Android MediaPlayer实现音乐播放器1、布局文件<?xml version="1.0" encod
- 目录Fanout交换机模型RabbitMQ控制台操作新增两个队列绑定fanout交换机示例效果图核心代码消息发布消息订阅Fanout交换机模
- 摘要:介绍使用Java Stream流排序器Comparator对List集合进行多字段排序的方法,包括复杂实体对象多字段升降序排序方法。综
- 本文实例为大家分享了java * 实现在线人数统计的具体代码,供大家参考,具体内容如下1.在工程中创建监听类SessionListener
- 目录1、通过session中的token验证步骤1:创建自定义注解步骤2:创建自定义 * (@slf4j是lombok的注解)步骤3:将自定