定时器AlarmManager AlarmManager常常用于需要周期性处理的场合,比如闹钟提醒、任务轮询等等。并且定时器来源于系统服务,即使App已经不在运行了,也能收到定时器发出的广播而被唤醒。AlarmManager是Android提供的一个全局定时器,其使用范围要大于Timer方式。因为Timer方式采用Thread通信,所以只适用于线程间通信,并且生命周期也有限。如果在Activity中定义Timer,那么Activity页面销毁后,定时器也失效了;
Android架构--MVVM 具体到Android开发中,开发架构就是描述三者之间的关系和实施:视图层:用户界面,即界面的展示、以及交互事件的响应。逻辑层:为了实现系统功能而进行的必要逻辑。数据层:数据的获取和存储,含本地、server。
感知生命周期的数据组件--LiveData LiveData是Android中用来进行数据监听的类。由于一些限制,现在官方推荐使用Flow进行数据监听。在ktx拓展包中,使用LiveData.asFlow()可以很方便的将LiveData转换为Flow。Flow.asLiveData()也可以很方便的将Flow转换为LiveData。
VideoView setOnCompletionListener(MediaPlayer.onCompletionListener l):设置监听播放完成的事件。void setVideoURI(Uri uri):以Uri的方式设置视频源,网络Uri或本地Uri。void stopPlayback():停止播放,调用resume()可以从头重新播放。int getDuration():获取当前播放视频的总长度,单位为毫秒。void pause():暂停,调用start()可以继续。void start():开始播放。
Activity 当调用到onNewIntent(intent)的时候,需要在onNewIntent()中使用setIntent(intent)赋值给Activity的Intent.否则,后续的getIntent()都是得到老的Intent。,如果在任务的栈顶正好存在该Activity的实例,就重用该实例( 会调用实例的 onNewIntent() ),否则就会创建新的实例并放入栈顶,即使栈中已经存在该Activity的实例,只要不在栈顶,都会创建新的实例。如果栈中不存在该实例,将会创建新的实例放入栈中。
Service 通过方法启动,此服务可以在后台一直运行,不会随启动组件的消亡而消亡。但是,此种启动模式只能执行单一操作,并且无法返回结果给调用方,主要常用于网络下载、上传文件,播放音乐等。通过启动模式启动的Service,如不主动关闭,Service会一直在。首次调用完startService函数后,Service1的onCreate和onStartCommand函数会依次执行,表示服务正式启动;
git 代码回退 soft hard区别 git hard 回退 会清除掉 你当前修改的所有文件代码内容 或添加的新文件 把当前文件恢复到没有修改前的状态。git soft 回退 不会清除掉 你当前修改的所有文件代码内容 或添加的新文件。一:只是本地修改提交到本地版本库仓库,代码如何回退。把当前文件恢复到当时修改时的状态。
补篇协程:协程(Coroutine)里使用suspend函数实现异步IO操作 因此,每次异步传输的信息都以一个起始位开头,它通知接收方数据已经到达了,这就给了接收方响应、接收和缓存数据比特的时间;按照惯例,空闲(没有传送数据)的线路实际携带着一个代表二进制1的信号,异步传输的开始位使信号变成0,其他的比特位使信号随传输的数据信息而变化。例如在键盘上数字“1”,按照8比特位的扩展ASCII编码,将发送“00110001”,同时需要在8比特位的前面加一个起始位,后面一个停止位。使用了异步IO,在发起IO请求到实际使用数据这段时间 内,程序还可以继续做其他事情。
Java IO流详解 IO流是基于流的概念,它将数据的输入和输出看作是一个连续的流。数据从一个地方流向另一个地方,流的方向可以是输入(读取数据)或输出(写入数据)。以字节为单位读写数据,适用于处理二进制字节数据,如图像、音频、视频等。通过IO流可以进行网络数据的传输和接收,如Socket通信、HTTP请求等。通过IO流可以读取和写入文件中的数据,如读取配置文件、写入日志等。通过IO流可以将数据读取到内存中,或将内存中的数据写入到数据库中。IO流的原理是通过流的管道将数据从源头传输到目标地。:从字节数组中读取字节数据的类。
使用匿名labmda表达式对一个函数的参数是个函数类型的具体实现时的 双向回调数据 双向处理业务逻辑 双向回调数据 双向处理业务逻辑在android的应用场景就是:Activity界面的RecyclerView与Adapter双向的相互传递数据处理业务逻辑。
二次重温协程 Job是协程的句柄。如果把门和门把手比作协程和Job之间的关系,那么协程就是这扇门,Job就是门把手。意思就是可以通过Job实现对协程的控制和管理。Job我们可以认为他就是一个协程作业是通过生成的,同时它运行一个指定的代码块,并在该代码块完成时完成。我们可以通过isActive来获取到Job的当前状态。Deferred 继承了 Job 接口 , 是 Job 接口的子接口;机翻文档 , 仅供参考;/*** 定义协同程序构建器的开始选项。