时隔多年,新的开始

新的开始

前言:

最近5年一直在一个公司,成长了许多,积累了许多。最近查问题打开了CSDN,看到自己多年前写的东西,真是稚嫩啊。
最近两年经历了很多,感受到人生的起起伏伏伏伏,挺痛苦的一段时期。
今天早上看到以前写的东西,里面还有一些关注,都是许久之前的友人。
想着重新开始吧。记录一下自己学习到的东西吧。

最近几年搞了Kubernetes、容器化、云原生、ServiceMesh、Istio等;
近一年一直在跟SIP协议对战,先从他说起吧。

把虚拟机上的Quickly Started运行的Sip系统迁移到Production容器化运行,中间不断学习新的协议,解决新的问题,过程是很充实的;就一点点以问题的方式叙述一下。

第一个问题:怎么搭建一个Sip系统?

在Android中设置定时器每隔5分钟执行一次,可以使用AlarmManager和PendingIntent。以下是基本步骤: 1. **获取权限**:首先需要运行时权限来访问系统服务,例如`Manifest.xml`文件中的`<uses-permission>`标签: ```xml <uses-permission android:name="android.permission.WAKE_LOCK" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> ``` 2. **创建计时任务**:在你的Activity或Service中,你可以创建一个Runnable或Callable对象,并封装到Handler或Thread中,作为你的定时任务。 3. **设置AlarmManager**:在需要启动定时器的地方,比如应用启动或特定操作完成后: ```java AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE); Calendar calendar = Calendar.getInstance(); calendar.add(Calendar.MINUTE, 5); // 5分钟后执行 Intent intent = new Intent(this, YourReceiver.class); intent.putExtra("timer_task", yourTaskObject); // 传递任务数据 PendingIntent pendingIntent = PendingIntent.getBroadcast(this, 0, intent, 0); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_DAY * 60, pendingIntent); // 每天重复 ``` 4. **接收器(Receiver)**:创建一个BroadcastReceiver,它会在指定时间接收到AlarmManager发出的通知: ```java public class YourReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { if ("timer_task".equals(intent.getStringExtra("timer_task"))) { // 执行你的定时任务 } AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE); am.cancel(pendingIntent); } } ``` 记得在应用关闭时取消AlarmManager,以免后台持续消耗资源: ```java @Override protected void onDestroy() { super.onDestroy(); if (pendingIntent != null) { AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE); am.cancel(pendingIntent); } } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值