【Android】之【延时执行的几种方法】

这篇具有很好参考价值的文章主要介绍了【Android】之【延时执行的几种方法】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

在Android日常开发中我们经常会有延时执行某个操作的需求,例如我们启动应用的时候,开始呈现一个引导页面,过了两三秒后,自动跳转到主界面;又如为了控制时序,需要延时执行等等。

下面整理下实现延时执行操作的几种方法:

① 使用Handler的postDelayed方法实现延时操作

推荐使用这种方式

Handler handler = new Handler();
handler.postDelayed(new Runnable() {
    @Override
    public void run() {
       /**
        *要执行的操作
        */
    }
}, 3000);//3秒后执行Runnable中的run方法
new Handler().postDelayed(new Runnable() {
public void run() {
	//要执行的任务
}}, 3000);
 final int MSG_WHAT = 1;
 Handler handler = new Handler() {
     @Override
     public void handleMessage(Message message) {
         switch(message.what) {
             case MSG_WHAT:
                 // 更新UI
                 break;
         }
     }
 };
 // 延时3s执行MSG_WHAT
 handler.sendEmptyMessageDelayed(MSG_WHAT, 3000);

② 使用线程的休眠实现延时操作

new Thread() {
    @Override
    public void run() {
        super.run();
        Thread.sleep(3000);//休眠3秒
        /**
         * 要执行的操作
         */
    }
}.start();

③ 使用Timer定时器

 TimerTask task = new TimerTask() {
   @Override
     public void run() {
       // 要执行的操作
     }
 };
 Timer timer = new Timer();
 timer.schedule(task, 3000); // 延时3s 执行TimeTask的run方法
 
 timer.schedule(task,3000,5000);//3秒后每隔5秒执行一次
 timer.cancel();//销毁

④ AlarmManager.setRepeating()

适合需要一直在后台运行的定时任务,比如每隔5分钟就做一件事。文章来源地址https://www.toymoban.com/news/detail-509193.html


/**
 * 一个定时任务
 */
public class AlarmService extends Service {
    private static final int INTERVAL = 1 * 60 * 60 * 1000;//1小时
    private static final int PENDING_REQUEST = 0;

    /**
     * 调用Service都会执行到该方法
     */
    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {

        //通过AlarmManager定时启动广播
        AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
        long triggerAtTime = SystemClock.elapsedRealtime() + INTERVAL;//从开机到现在的毫秒(手机睡眠(sleep)的时间也包括在内

        Intent i = new Intent(this, AlarmReceive.class);
        PendingIntent pIntent = PendingIntent.getBroadcast(this, PENDING_REQUEST, i, PENDING_REQUEST);
        alarmManager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pIntent);

        return super.onStartCommand(intent, flags, startId);
    }

}
public class AlarmReceive extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Intent i = new Intent(context, AlarmService.class);
        context.startService(i);
    }
}

到了这里,关于【Android】之【延时执行的几种方法】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • SpringBoot 启动项目后执行方法的几种方式

    在项目开发中某些场景必须要用到启动项目后立即执行方式的功能,如我们需要去初始化数据到 redis 缓存、设置策略工厂,或者启动后读取相应的配置等,主要聊聊实现立即执行的几种方法。 这两者的实现方法一样,都是去继承相应的接口然后重写 run 方法即可,也都是 S

    2024年02月11日
    浏览(30)
  • Android常用的延迟执行任务及轮询定时任务的几种方式

    Executor 的 execute 方法:向线程池中提交任务(异步执行) Executor 接口是 Java 并发编程中的一个接口,它定义了一种执行任务的通用机制。Executor 接口有一个重要的方法 execute,它的作用是提交一个任务(Runnable 或 Callable)给 Executor 进行执行。 execute 方法的作用如下: 提交任务:

    2024年04月25日
    浏览(31)
  • 在Linux系统中执行.sh文件的几种方法

    cd到.sh文件所在的目录,然后执行./xxx.sh 【前提:该./sh文件要有可执行的权限,chmod u+x xxx.sh】 在.sh文件路径下直接使用sh加.sh文件名即可 【是否有可执行权限都可以】 注意事项:**用“./”加文件名.sh执行时,必须给.sh文件加x执行权限 ./home/test/shell/hello.sh,可以这样运行是

    2024年02月12日
    浏览(33)
  • Python: 导入或执行python源文件的几种方法

    目录 概要 方法1:import 方法2:exec() 方法3:os.system()         本文介绍python中导入或执行python源文件(通常是从另一个python源文件中)的几种常用方法。包括import, exec(), os.system()等。         第一种方式是使用import。         比如说有一个文件hello_world.py,内容如

    2024年02月15日
    浏览(28)
  • Android设置控件阴影的几种方法

    第一种方式: elevation View的大小位置都是通过x,y确定的,而现在有了z轴的概念,而这个z值就是View的高度(elevation),而高度决定了阴影(shadow)的大小。 View Elevation(视图高度) View的z值由两部分组成,elevation和translationZ(它们都是Android L新引入的属性)。 eleavation是静态

    2024年02月14日
    浏览(32)
  • Windows Bat实现延时功能的几种常见方式

    在 bat 批处理中实现延时功能的几种常用方式 使用ping命令可以实现延时的效果,命令如下: -n 指定 ping 的次数,每次大概间隔1s, nul 将 ping 过程回显信息给屏蔽 ping 命令实现的延时,时间精度:大约1s,内存占用: ping 命令所占用空间 注意闭坑:ping 从第1次发出请求到接收

    2024年02月11日
    浏览(27)
  • 如何使Android按钮控件位于底部的几种方法

    如何使Android按钮控件位于底部的几种方法 在Android应用程序开发中,经常会遇到需要将按钮控件放置在屏幕底部的情况。这样可以提升用户体验,并且使界面更加直观。本文将介绍几种实现这一目标的方法,并提供相应的源代码。 方法一:使用RelativeLayout布局 RelativeLayout布局

    2024年01月16日
    浏览(30)
  • Python打开Windows可执行性程序的几种方法(Windows窗口自动化第一步)

    方法一:用Pywinauto第三包 方法二:使用os.system函数运行其他程序 方法三:win32api第三包使用ShellExecute函数运行其他程序 方法四:使用win32process.CreateProcess函数 方法七:用ctpyes模块调用C函数

    2024年02月16日
    浏览(43)
  • 前端开发中,定位bug的几种常用方法

    目录 第一章 前言 第二章 解决bug的方法 2.1 百度 2.2 有道翻译 2.3 debugger 2.4 console.log 日志打印 2.5 请求体是否携带参数 2.6 注释页面渲染代码 2.7 其他 第三章 尾声 备注:该文章只是本人在工作/学习中常用的几种方法,如果有不对大家“胃口”的地方,勿喷,可以在评论区提供

    2024年02月04日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包