context

Broadcast 使用详解

吃可爱长大的小学妹 提交于 2020-01-24 05:20:05
极力推荐文章:欢迎收藏 Android 干货分享 阅读五分钟,每日十点,和您一起终身学习,这里是程序员Android 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 广播的生命周期 四大组件之一,必须在Androidmainfest.xml中注册 广播的注册(静态广播、动态广播) 广播的发送(正常、有序、持续) 广播接收(系统广播、自定义广播) Broadcast 是 Android 四大组件之一,是一种广泛运用在应用程序之间异步传输信息的机制。 Broadcast 本质上是一个 Intent 对象,差别在于 Broadcast 可以被多个 BroadcastReceiver 处理。 BroadcastReceiver 是一个全局监听器,通过它的 onReceive() 可以过滤用户想要的广播,进而进行其它操作。 1. BroadcastReceiver简介 BroadcastReceiver继承关系 BroadcastReceiver 默认是在主线程中执行,如果 onReceiver() 方法处理事件超过 10s ,则应用将会发生 ANR(Application Not Responding) ,此时,如果建立工作线程并不能解决此问题,因此建议:如处理耗时操作,请用 Service 代替。 BroadcastReceiver 继承关系

Singleton and Prototype Bean Scope in Spring

 ̄綄美尐妖づ 提交于 2020-01-24 04:13:05
Scope描述的是Spring容器如何新建Bean的实例的。 1> Singleton: 一个Spring容器只有一个Bean的实例,此为Spring的默认配置,全容器共享一个实例。 2> Prototype: 每次调用都新建一个Bean的实例。 3> Request: Web 项目中,给每一个 http request 新建一个Bean实例。 4> Session: Web项目中,给每一个 http session 新建一个Bean实例。 5> GlobalSession: 这个只在portal应用中有用,给每一个global http session 新建一个Bean实例。 But ....这里要说的是Singleton 和 Prototype的区别: 1.新建Spring Boot项目,有如下类: 2. POM 文件 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4

计算字符串绘制所需宽高

╄→尐↘猪︶ㄣ 提交于 2020-01-24 02:37:33
[str boundingRectWithSize: options: attributes: context:]; 可以用该方法在绘制之前计算需要多大空间。 参数 size 宽高限制,用于计算文本绘制时占据的矩形块。 options 文本绘制时的附加选项。 context context上下文。包括一些信息,例如如何调整字间距以及缩放。最终,该对象包含的信息将用于文本绘制。该参数可为 nil 。 返回值 一个矩形,大小等于文本绘制完将占据的宽和高。 size 参数是一个constraint ,用于在绘制文本时作为参考。但是,如果绘制完整个文本需要更大的空间,则返回的矩形大小可能比 size 更大。一般,绘制时会采用constraint 提供的宽度,但高度则会根据需要而定。 NSStringDrawingOptions 文本绘制选项。 enum { NSStringDrawingTruncatesLastVisibleLine= 1 << 5, NSStringDrawingUsesLineFragmentOrigin= 1 << 0, NSStringDrawingUsesFontLeading= 1 << 1, NSStringDrawingUsesDeviceMetrics= 1 << 3, }; typedef NSInteger

学习boundingRectWithSize:options:attributes:context:计算文本尺寸

老子叫甜甜 提交于 2020-01-24 02:03:37
oundingRectWithSize:options:context: 返回文本绘制所占据的矩形空间。 - (CGRect)boundingRectWithSize:(CGSize)size options:(NSStringDrawingOptions)options context:(NSStringDrawingContext *)context 参数 size 宽高限制,用于计算文本绘制时占据的矩形块。 The width and height constraints to apply when computing the string’s bounding rectangle. options 文本绘制时的附加选项。可能取值请参考 “NSStringDrawingOptions” 。 context context上下文。包括一些信息,例如如何调整字间距以及缩放。最终,该对象包含的信息将用于文本绘制。该参数可为 nil 。 返回值 一个矩形,大小等于文本绘制完将占据的宽和高。 讨论 可以使用该方法计算文本绘制所需的空间。size 参数是一个constraint ,用于在绘制文本时作为参考。但是,如果绘制完整个文本需要更大的空间,则返回的矩形大小可能比 size 更大。一般,绘制时会采用constraint 提供的宽度,但高度则会根据需要而定。 特殊情况

MyBatis源码的学习(20)---如何从jdbc到mybatis?

一曲冷凌霜 提交于 2020-01-23 20:59:21
mybatis源码解读,基本简单的流程已经解析的差不多了,这里做个总结:从架构的角度,分析下如何把jdbc封装成myBatis的。 原生的jdbc代码步骤: 1.获取连接(连接信息等可以从配置文件中获取) 2.sql 3.创建statement对象 4.设置参数 5.执行statement 6.结果集映射为java类型 7.释放资源 从架构的角度看问题: 首先,连接信息需要的驱动,数据源信息。可以抽取到配置文件中。 第二,那么sql语句是否也可以提取到配置文件,然后我们从配置文件读sql语句 第三,我们sql中的参数如何赋值 第四,reseultSet如何转为我们需要的java类型 其实,mybatis就是帮我们解决了这四个问题的。 我们的配置信息需要存储:Confguration, 我们的数据库连接时信息需要存储 :DataSource 然后我们的sql怎么存储呢? Mapper.xml文件,还有每一个sql语句这些信息需要存储 XMLMapperBuilder MapperBuilderAssistant XMLStatementBuilder MappedStatement XMLScriptBuilder 然后我们的sql信息的存储 SqlSource SqlNode BoundSql 我们的参数的存储 public class BoundSql { private

35.Python中join、length、lower、upper、random、safe、slice、truncatechars、truncatechars_html过滤器

自古美人都是妖i 提交于 2020-01-22 23:28:43
1.join过滤器:类似于中的join,将列表/元组/字符串用指的字符进行拼接,可以在join过滤器之后指定分隔符,示例代码如下: views.py中代码如下: from django . shortcuts import render def join ( request ) : context = { 'value' : [ 'python' , 'django' , 'flask' ] } return render ( request , 'join.html' , context = context ) join.html中代码如下所示: < !DOCTYPE html > < html lang = "en" > < head > < meta charset = "UTF-8" > < title > Title < / title > < / head > < body > { { value | join : "+" } } < / body > < / html > 浏览器中查看运行结果如下所示: 2.length过滤器:获取一个列表/元组/字符串/字典(python中所有可以使用len()函数的类型)的长度,示例代码如下: join.html中代码如下: < p > { { value | join : "+" } } < / p > < p > { {

【代码篇】从零开始一步步搭建自己的golang框架(五)

僤鯓⒐⒋嵵緔 提交于 2020-01-22 23:12:00
上篇文章讲到数据库和redis连接的初始化已经完成,接下这篇文章会比较重要一点,我们要启动一个http服务和一个rpc服务,同时抽象出一层数据处理层来封装接口。 开启http服务 老规矩,先添加配置,顺便把rpc的配置也写进去,config.json: "http_config": { "addr": ":8080" }, "rpc_config": { "addr": ":8081" } config.go: type HttpConfig struct { Addr string `json:"addr"` } type RpcConfig struct { Addr string `json:"addr"` } 接着,来看看process/http/http.go的内容: package http import ( "github.com/gin-gonic/gin" "go.uber.org/zap" "os" ) var engine *gin.Engine //启动http服务 func StartHttpServer(addr string) { engine = gin.Default() Route() if err := engine.Run(addr); err != nil { zap.Error(err) os.Exit(1) } } //路由 func

ssm之spring+springmvc+mybatis整合初探

我是研究僧i 提交于 2020-01-22 22:03:21
1、基本目录如下 2、首先是向lib中加入相应的jar包 3、然后在web.xml中加入配置,使spring和springmvc配置文件起作用。 <?xml version="1.0" encoding="UTF-8"?> <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0"> <!-- needed for ContextLoaderListener --> <context-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:spring.xml</param-value> </context-param> <!-- Bootstraps the root web application context before servlet initialization

定时器

喜夏-厌秋 提交于 2020-01-22 21:42:02
监听器 import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import javax.servlet.annotation.WebListener; import java.util.Calendar; import java.util.Date; import java.util.Timer; /** * 监听类:监听服务器的启动并将任务添加到任务栈 */ @WebListener public class ContextListener implements ServletContextListener{ public ContextListener() { } private java.util.Timer timer = null; /** * 初始化定时器 * web 程序运行时候自动加载 */ @Override public void contextInitialized(ServletContextEvent arg0) { /** * 设置一个定时器 */ timer = new Timer(true); arg0.getServletContext().log("定时器已启动"); /** * 定时器到指定的时间时,执行某个操作(如某个类

模板渲染

荒凉一梦 提交于 2020-01-22 20:05:53
模板渲染 一 . 语法 关于模板渲染只需要记住两种语法就可以: {{ }} # 里面写变量 {% %} # 里面写与逻辑相关的,比如for循环 二 . 渲染 方式一 在views.py文件下导入 from django.template import Template, Context def model ( request ) : # ********************************************* t = Template ( "<h1>My name is {{name}}<h1>" ) # 一小段html代码,加载到Template里,返回Template对象 context = { # 上下文字符串,准备渲染到模板里的变量 'name' : 'hahaha' } c = Context ( context ) # 初始化一个对象 html = t . render ( c ) # 渲染模板 print ( html ) # ******************** return render ( request , 'model.html' ) 在model.html下写代码如下 <!DOCTYPE html> <html lang= "en" > <head> <meta charset= "UTF-8" > <title>Title<