Kotlin 协程教程什么是协程协程就像非常轻量级的线程线程是由系统调度的,线程切换或线程阻塞的开销都比较大。而协程依赖于线程,但是协程挂起时不需要阻塞线程,几乎是无代价的,协程是由开发者控制的。所以协程也像用户态的线程,非常轻量级,一个线程中可以创建任意个协程。协程的创建线程的创建方式主要有两种, 继承Thread, 或者实现Runnable接口, 而协程而是通过构建器(coroutine b
转载 2023-08-16 12:39:03
199阅读
移动端经常遇到的一些小总结,方便·以后使用:  1.关闭iOS键盘首字母自动大写     IOS的机子,默认英文输入法状态下,首字母是自动大写的,autocapitalize的属性可以实现关闭首字母大写:  <input type="text" autocapitalize="off" /> 2.
今天来说说android这个包。它是列表中的第一个包。 它有26个类。 目前只能猜这么多,等以后摸熟了继续更新。 先来看一下官方对这个类的解释: Contains resource classes used by applications included in the platform and defines application permissions for system features
转载 4月前
20阅读
# 在 Android Studio 中创建非 Kotlin 项目 在 Android 开发的世界中,Kotlin 已经成为了一种热门的编程语言,但有些时候我们也可能需要使用 Java 来编写 Android 应用程序。如果你刚刚入行,可能会对如何在 Android Studio 中创建一个非 Kotlin 的项目感到困惑。下面这篇文章将指导你完成整个过程,帮助你顺利启动你的第一个 Androi
原创 2024-08-11 07:03:37
61阅读
一、Android通过Handler来实现收发消息的机制,而且在Android不允许在主线程中更新UI,所以一般使用Handler来实现。 Handler中的方法: post(Runnable) postAtTime(Runnable,long) postDelayed(Runnable , long) sendEmptyMessage(int) sendMessage(Message
转载 2024-07-21 02:06:08
128阅读
# Android Kotlin 手机号掩码 在移动应用开发中,手机号码的输入和显示通常需要进行掩码处理,以增加用户输入的可读性和保护用户隐私。本文将介绍如何在 Android Kotlin 中实现手机号掩码,并提供代码示例。 ## 原理介绍 手机号掩码是指将手机号的部分数字用特殊字符(如 * 或 x)替代,以提高用户体验和隐私保护。常见的掩码形式有以下几种: - 全掩码:将所有数字都用特
原创 2024-01-22 06:11:38
235阅读
/** * Created by gacmy on 2017/6/15. */ fun strLen(s:String) = s.length//会产生编译错误 空指针异常 //fun strLenSafe(s: String?) = s.length // 类型后面加? 表明它可以为空值 但是你不能直接调用它的方法 否则会报错 fun strLenSafe(s: String?):Int{/
转载 8月前
21阅读
 /   前言   /LiveData 的历史要追溯到 2017 年。彼时,观察者模式有效简化了开发,但诸如 RxJava 一类的库对新手而言有些太过复杂。为此,架构组件团队打造了 LiveData: 一个专用于 Android 的具备自主生命周期感知能力的可观察的数据存储器类。LiveData 被有意简化设计,这使得开发者很容易上手;而对于较为复
Material Design 中的 Tab 设计可以参考官方文档 https://material.io/guidelines/components/tabs.html#tabs-usage ,其中的 Tab 部分 Support Library 提供了专门的控件 TabLayout。TabLayout 的简单使用首先需要添加 design 库compile 'com.android.suppo
转载 2024-03-05 08:20:46
95阅读
一般类形式: class Person(var name: String){//构造函数放在类头部 var age = 1 var fulName: String var address = "china" init {//初始化模块,与第一构造函数同时执行 fulName = name+"_haha" } //类内部成员变量访
转载 2024-07-17 11:27:50
61阅读
Kotlin Coroutines(协程)在前面的文章,我们提到了kotlin的基本语法、为什么选用kotlin、根据《Effective Java》Kotlin语法层面的优化、kotlin单元测试编写以及kotlin对包大小影响、kotlin与Java对比运行时性能等,今天我们谈谈在Kotlin 1.1引入的强大且实用的Coroutines,本文详细介绍了Coroutines的概念与常见的使用场
长期以来,android官方没有制定一个项目架构的规范, 慢慢地就有第三方的项目架构例如XUtils 等引入到android平台上, 类似的还有MVP、MVVM等。作为开发者, 我们需要思考一个问题: android开发为什么需要架构?在传统的开发模式下,Activity 任务太重了,要负责UI展示,又要负责逻辑处理,还要创建子线程处理网络回调、 异常处理等等, 各个部分根本没有模块化、独立出来,
转载 2024-08-16 13:57:26
28阅读
Android中可以扮演线程的角色还有很多,比如AsyncTask和IntentService,同时HandlerThread也是一种特殊的线程,尽管AsyncTask,IntentService以及HandlerThread的表现形式都有别于传统的线程,但是他们的本质仍然是传统的线程,对于AsyncTask来说,他的底层用到了线程池,对于IntentService和HandlerThread来说
线程安全的定义线程安全:如果你的代码所在的进程中有多个线程在同时运行,而这些线程可能会同时运行这段代码。如果每次运行结果和单线程运行的结果是一样的,而且其他的变量的值也和预期的是一样的,就是线程安全的,或者说:一个类或者程序所提供的接口对于线程来说是原子操作或者多个线程之间的切换不会导致该接口的执行结果存在二义性,也就是说我们不用考虑同步的问题 。Android的单线程模型当一个程序第一次启动的时
转载 2023-07-13 10:13:32
67阅读
浅析android线程处理和通信 浅析android线程处理和通信 做过java的朋友应该对java的线程类Thread很熟悉了,用法也很简单直观,简单写个最简单的例子: public class A implements Runnable { @Override public void onCreate() { //创建工作线程
转载 2023-07-28 00:31:28
43阅读
线程基础、同步、阻塞队列、线程池、AsynTask异步任务 一:线程基础1.进程与线程进程:是操作系统结构的基础,是程序在一个数据集合上的运行过程,是系统进行资源分配和调度的基本单位。线程:是操作系统调度的最小单位。2.线程的状态New:新创建状态。Runnable:可运行状态。(注意:此状态不一定在运行,主要取决于cpu是否给线程运行起来)Blocked:阻塞状态。表示被锁阻塞,他暂时
前言:这一篇博文主要是和大家讲解一下线程间通讯机制的内部实现原理,即Handler、Message、MessageQueue、Looper、HandlerThread、AsyncTask类的实现以及之间的关系。如果还没有接触过Handler+Message+Runnable、HandlerThread、AsyncTask的朋友可以先看看基础篇:【Android开发】线程间通讯机制(基础篇)——Ha
转载 2023-08-25 21:15:56
32阅读
在Java中默认情况下一个进程只有一个线程,也就是主线程,其他线程都是子线程,也叫工作线程Android中的主线程主要处理和界面相关的事情,而子线程则往往用于执行耗时操作。线程的创建和销毁的开销较大,所以如果一个进程要频繁地创建和销毁线程的话,都会采用线程池的方式。Android线程的形态传统的Thread这是Java本身就支持的类,自定义化程度高,但是所有的功能都需要自己维护。AsyncTa
转载 2023-06-26 20:21:02
125阅读
当你第一次启动一个Android程序的时候,一个被称为"mian"的线程就被自动创建了。它被称为主线程或者UI线程,它是非常重要的因为负责分发事件给对应的widget,还包含画图的事件。主线程贯穿用户和Android widget的交互的整个过程。例如,你触摸了屏幕上的按钮(Button),UI线程派发(dispatch)触摸(touch)事件给widget,widget设置为按下状态并向事
转载 2024-02-06 14:48:21
40阅读
文章目录进程与线程一、进程二、线程线程一、Handler + Thread1、MessageQueue2、Looper3、Handler二、AsyncTask1、AsyncTask的泛型参数2、AsyncTask的核心方法3、AsyncTask的简单实用4、使用AsyncTask的注意事项5、AsyncTask 的源码分析6、AsyncTask 使用不当的后果三、ThreadPoolExecu
  • 1
  • 2
  • 3
  • 4
  • 5