首页 文章 精选 留言 我的

精选列表

搜索[长期价值性],共10008篇文章
优秀的个人博客,低调大师

Android--后台长期执行定时循环任务

版权声明:本文为博主原创文章,转载请标明出处。 https://blog.csdn.net/chaoyu168/article/details/79607270 import android.app.AlarmManager; import android.app.PendingIntent; import android.app.Service; import android.content.Intent; import android.os.Handler; import android.os.IBinder; import android.os.SystemClock; import java.util.Timer; import java.util.TimerTask; public class MyService extends Service { private Runnable runnable; private Handler handler; private int Time = 1000*3;//周期时间 private int anHour =8*60*60*1000;// 这是8小时的毫秒数 为了少消耗流量和电量,8小时自动更新一次 private Timer timer = new Timer(); @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { super.onCreate(); /** * 方式一:采用Handler的postDelayed(Runnable, long)方法 */ handler = new Handler(); runnable = new Runnable() { @Override public void run() { // handler自带方法实现定时器 System.out.println("33331"); handler.postDelayed(this, 1000*3);//每隔3s执行 } }; handler.postDelayed(runnable, 1000*60);//延时多长时间启动定时器 /** * 方式二:采用timer及TimerTask结合的方法 */ TimerTask timerTask = new TimerTask() { @Override public void run() { System.out.println("99999998"); } }; timer.schedule(timerTask, 1000,//延迟1秒执行 Time);//周期时间 } /** * 方式三:采用AlarmManager机制 */ @Override public int onStartCommand(Intent intent, int flags, int startId) { new Thread(new Runnable() { @Override public void run() { System.out.println("99999988");//这是定时所执行的任务 } }).start(); AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE); long triggerAtTime = SystemClock.elapsedRealtime() + anHour; Intent intent2 = new Intent(this, AutoUpdateReceiver.class); PendingIntent pi = PendingIntent.getBroadcast(this, 0, intent2, 0); manager.set(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, pi); return super.onStartCommand(intent, flags, startId); } @Override public void onDestroy() { super.onDestroy(); } } public class AutoUpdateReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, MyService.class); context.startService(i); } }记得注册广播和服务,建议使用方式三。

优秀的个人博客,低调大师

清楚自己的价值

最近一直在给荣新中心做Oracle方面的培训事宜,当然,讲的都比较基础,一是熊熊技术有限,不敢献丑;二是学员们大多数也都是零基础的年轻朋友,太深入的东西,消化也困难~ 下午的时候,来了一对夫妻,30+的样子,在后面听了一会儿课以后就出去了,熊熊课间休息的时候,荣新的销售人员说他们想了解一下,让熊熊做个技术支持,于是就简单的聊了几句~ 对方一开始给熊熊的感觉,口气很正,甚至有点狂妄,说感觉周末班讲的很基础,他不需要这些基础的东西,问荣新有没有高端架构的东西,额,荣新貌似确实今年有高端课程开启的打算,但是具体事宜却不是熊熊知道的,不过针对他的问题和态度,熊熊倒是深入了聊了一些~ 经过简单介绍才知道对方是淘宝公司的架构师,年薪更是高达50W,主要是做开发架构这块,想往更高级的方向发展,所以想了解一些运维架构的东西,熊熊很诧异,淘宝那么好的平台,完全在内部有很多大师级的人物可以沟通交流啊,何必要在培训机构来学习,而且,很少有培训机构能够高端到讲具体海量架构这种吧,毕竟,这种实战的环境,需要讲师拥有大量的真实案例,这样的讲师一般都很忙,而且价格不菲,不是一般培训机构能承受的,况且,方向这种东西,尤其是经验,是没有任何一个培训机构能学到的~ 对方跟我说,感觉与公司的运维技术人员交流很费劲,于是熊熊尝试着去与其交流,发现了问题所在,能够体会他所谓的费劲的含义了,此人是一个什么事情都要亲力亲为的人,对Linux一知半解,也需要把Linux架构彻底精通,对Oracle一知半解,也需要把Oracle精通,且不说人的精力是有限的这些,单单只是解释,一个高级DBA可能为其解释一个概念,需要用到十数个概念来堆积,每个概念又需要费一番口舌,何必这样难为自己难为别人? 其实,技术做到一定程度,虽然重要,但是更多的是应该去考虑大的方向,深入理解你要做什么,而不是纠结于技术细节本身了,不是每个人都能成为技术专家的,适合自己的,适合公司的,才是对的~ 作为一个架构师级别的人物,更多的应该去考虑如何保证自己要做的事情的大的方向,比如,当我网站在100万PV的时候如何考虑,500万PV的时候如何考虑,1000万PV的时候如何考虑,5000万PV的时候如何考虑,上亿PV的时候又如何考虑等等,而不是跟技术人员掰扯Oracle的技术细节是什么,有意义么? 个人认为,一个好的架构师,不一定是技术最强的人,但是一定是让各个模块的技术专家都忽悠不了自己的人,因为他对整体的把握很熟悉,对要做的事的方向很熟悉,对整体业务很熟悉,对公司和自我认知很到位~ 前几天去一个大型制药企业面试一个高端职位,听到一个VP说了一段话,感触颇深;一个专业技术人员,不管你的技术水平有多高,以自己为导向发展,路会越走越窄;以公司为导向发展,路会越走越宽;什么意思呢,就是说,很多情况下,公司未必需要你的技术很深,或者你一定要是某个领域的技术专家(大多数情况下,那些乙方服务的公司,还是以技术为优先,技术很重要,但不是重点),而是你能很好的配合公司要做的事情,也许公司今天要用Oracle,明天会用MySQL或者DB2,那么你学不学? (PS:这里有歧义,怪熊熊用的例子不对,其实人家的意思是,尽量去了解你要做的事情,把事情做好,而不要拘泥于到底用Oracle还是用MySQL这种技术本身上),熊熊用的例子正好用反了,抱歉~ 谁都有迷茫的时候,但是熊熊很不以为然,迷茫期只能自己去悟,去走出来,否则别人说什么,都只是从一个圆往另一个圆走罢了,如果年薪50W还需要迷茫,让那些年薪还不到5W的学员情何以堪? 路在自己脚下,怎么走靠自己去理解,一家之言,仅供参考~ 本文转自bear_cat51CTO博客,原文链接:http://blog.51cto.com/bearlovecat/1150919,如需转载请自行联系原作者

资源下载

更多资源
Mario

Mario

马里奥是站在游戏界顶峰的超人气多面角色。马里奥靠吃蘑菇成长,特征是大鼻子、头戴帽子、身穿背带裤,还留着胡子。与他的双胞胎兄弟路易基一起,长年担任任天堂的招牌角色。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Rocky Linux

Rocky Linux

Rocky Linux(中文名:洛基)是由Gregory Kurtzer于2020年12月发起的企业级Linux发行版,作为CentOS稳定版停止维护后与RHEL(Red Hat Enterprise Linux)完全兼容的开源替代方案,由社区拥有并管理,支持x86_64、aarch64等架构。其通过重新编译RHEL源代码提供长期稳定性,采用模块化包装和SELinux安全架构,默认包含GNOME桌面环境及XFS文件系统,支持十年生命周期更新。

用户登录
用户注册