精华内容
下载资源
问答
  • Application的生命周期上下文的应用场景 Application是什么? ApplicationActivity,Service一样,是Android框架的一个系统组件,当Android程序启动时系统会创建一Application 对象,用来存储系统的一些信息。 ...

    Application的生命周期和上下文的应用场景

    Application是什么?

    Application和Activity,Service一样,是Android框架的一个系统组件,当Android程序启动时系统会创建一Application 对象,用来存储系统的一些信息。

    通常我们是不需要指定一个Application的,这时系统会自动帮我们创建,如果需要创建自己的Application,也很简单。
    创建一个类AppApplication继承Application并在AndroidManifest的application标签中进行注册(只需要给application 标签增加个name属性把自己的Application的名字写入即可)。

    Android系统会为每个程序运行时创建一个Application类的对象且仅创建一个
    (打开微信安卓系统会为微信创建一个Application对象,再打开微博安卓系统又会为微博创建一个Application对象),
    所以Application可以说是单例 (singleton)模式的一个类.
    且Application对象的生命周期是整个程序中最长的,它的生命周期就等于这个程序的生命周期。因为它是全局的单例 的,所以在不同的Activity,Service中获得的Application对象都是同一个对象。
    所以可以通过Application来进行一些,数据传递,数据共享,数据缓存等操作

    Application的应用

    通过Application传递数据

    假如有一个Activity A, 跳转到 Activity B ,并需要传递一些数据,通常的作法是Intent.putExtra()让Intent携带,或者有 一个Bundle把信息加入Bundle让Intent推荐Bundle对象,实现传递。但这样作有一个问题在于,Intent和Bundle所能携 带的数据类型都是一些基本的数据类型,如果想实现复杂的数据传递就比较麻烦了,通常需要实现Serializable或者
    Parcellable接口。这其实是Android的一种IPC数据传递的方法。如果我们的两个Activity在同一个进程当中为什么还要
    这么麻烦呢,只要把需要传递的对象的引用传递过去就可以了。

    基本思路是这样的。在Application中创建一个HashMap ,以字符串为索引,Object为value这样我们的HashMap就可 以存储任何类型的对象了。
    在Activity A中把需要传递的对象放入这个HashMap,然后通过Intent或者其它途经再把这索引的字符串传递给Activity B ,Activity B 就可以根据这个字符串在HashMap中取出这个对象了。只要再向下转个型 ,就实现对象的传递。

    Application数据共享

    多个组件之间数据共享。举例:两个Activity之间数据共享
    Application 对同一个应用程序是唯一的,所以可以使用Application进行数据共享。

    Application数据缓存

    我一般会习惯在Application中建立两个HashMap一个用于数据的传递,一个用于缓存一些数据。
    比如有一个Activity需要从网站获取一些数据,获取完之后我们就可以把这个数据cache到Application当中,
    当页面设置到其它Activity再回来的时候,就可以直接使用缓存好的数据了。但如果需要cache一些大量的数据,
    最好是cache一些 (软引用)SoftReference ,并把这些数据cache到本地rom上或者sd卡上。
    如果在application中的缓存不存在,从本地缓存查找,如果本地缓存的数据也不存在再从网络上获取。

    易导致的错误

    使用Application如果保存了一些不该保存的对象很容易导致内存泄漏。
    如果在Application的onCreate中执行比较耗时的操作,将直接影响程序的启动时间。
    一些清理工作不能依靠onTerminate完成,因为android会尽量让你的程序一直运行,所以很有可能onTerminate()方法 不会被调用。

    Application的生命周期

    1、onCreate() 程序创建的时候执行

    2、onTerminate() 程序终止的时候执行
    在模拟环境下执行。当终止应用程序对象时调用,不保证一定被调用,
    当程序是被内核终止以便为其他应用程序释放资源,那么将不会提醒,
    并且不调用应用程序Application对象的onTerminate方法而直接终止进程。

    3、onLowMemory() 低内存的时候执行

    好的应用程序一般会在这个方法里面释放一些不必要的资源来应付当后台程序已经终止,
    前台应用程序内存还不够时的情况。

    4、onConfigurationChanged(Configuration newConfig) 配置改变时触发这个方法。

    5、onTrimMemory(int level)程序在进行内存清理时执行

    生命周期

    public class MyApp extends Application {
        private static final String TAG = "baby";
        @Override
        public void onCreate() {
            super.onCreate();
            Log.i(TAG, "onCreate: ");
        }
    
        @Override
        public void onConfigurationChanged(Configuration newConfig) {
            super.onConfigurationChanged(newConfig);
            Log.i(TAG, "onConfigurationChanged: ");
        }
    
        @Override
        public void onLowMemory() {
            super.onLowMemory();
            Log.i(TAG, "onLowMemory: ");
        }
    
        @Override
        public void onTerminate() {
            super.onTerminate();
            Log.i(TAG, "onTerminate: ");
        }
    
        @Override
        public void onTrimMemory(int level) {
            super.onTrimMemory(level);
            Log.i(TAG, "onTrimMemory: ");
        }
    }
    
    展开全文
  • Express 是一个三方模块,对原生模块封装了一套更灵活、更简洁的应用框架,其在 Node.js 环境的地位作用好比 jQuery 在前端的地位作用。 路由 在 BS 架构中,路由的概念都是一样的,可理解为根据客户端请求的 ...
        

    Express

    Express 是一个第三方模块,对原生模块封装了一套更灵活、更简洁的应用框架,其在 Node.js 环境的地位和作用好比 jQuery 在前端的地位和作用。

    路由

    在 BS 架构中,路由的概念都是一样的,可理解为根据客户端请求的 URL 映射到不同的方法实现,更多的一般都是针对 URL 中的路径,或者是参数,又或者是锚点这些信息进行映射。

    Express 使用

    • 因为 Express 是第三方模块,所以在使用前要先安装 npm install express
    • 加载模块
    var express = require('express');
    var app = express();
    • 开启服务器,定义端口8080:
    app.listen(8080, function(){
        console.log('Server running on http://localhost:8080');
    });

    Express -- GET

    • 定义根路由,我们定义端口为 8080,当我们访问:http://localhost:8080/,会自动触发方法,会在页面上显示 Root Page。
    • response.send() 可理解为 response.end(),其中一个不同点在于 response.send() 参数可为对象。
    • 只有 GET 访问能触发
    app.get('/', function(request, response){
        response.send('Root Page');
    })
    • 定义 getUsers 路由,当我们访问:http://localhost:8080/getusers,会自动触发方法,会在页面上显示 getUsers Page。
    app.get('/getUsers', function(request, response){
        response.send('getUsers Page');
    })
    • Node.js 默认是不能访问静态资源文件(.html、.js、.css、.jpg 等),如果要访问服务端的静态资源文件则要用到方法 sendFile
    • __dirname 为 Node.js 的系统变量,指向文件的绝对路径。
    app.get('/index.html', function (req, res) {
       res.sendFile( __dirname + "/" + "index.html" );
    });

    Express -- GET 参数接收之 Query Strings

    访问地址:http://localhost:8080/getusers?username=dk&age=18,可通过 request.query 来获取参数

    app.get('/getUsers', function(request, response){
        var params = {
            username: request.query.username,
            age: request.query.age
        }
        response.send(params);
    })

    Express -- GET 参数接收之路径方式

    访问地址:http://localhost:8080/getusers/admin/18,可通过 request.params 来获取参数

    app.get('/getUsers/:username/:age', function(request, response){
        var params = {
            username: request.params.username,
            age: request.params.age
        }
        response.send(params);
    })

    Express -- POST

    • post 参数接收,可依赖第三方模块 body-parser 进行转换会更方便、更简单,该模块用于处理 JSON, Raw, Text 和 URL 编码的数据。
    • 安装 body-parser npm install body-parser
    • 参数接受和 GET 基本一样,不同的在于 GET 是 request.query 而 POST 的是 request.body
    var bodyParser = require('body-parser');
    // 创建 application/x-www-form-urlencoded 编码解析
    var urlencodedParser = bodyParser.urlencoded({ extended: false })
    app.post('/getUsers', urlencodedParser, function (request, response) {
        var params = {
            username: request.body.username,
            age: request.body.age
        }
       response.send(params);
    });

    Express -- 跨域支持(放在最前面)

    app.all('*', function(req, res, next) {
        res.header("Access-Control-Allow-Origin", "*");
        res.header("Access-Control-Allow-Headers", "Content-Type,Content-Length, Authorization, Accept,X-Requested-With");
        res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS");
        res.header("X-Powered-By",' 3.2.1')
        if(req.method=="OPTIONS") {
          res.send(200);/*让options请求快速返回*/
        } else{
          next();
        }
    });
    展开全文
  • 7.2 根树及其应用(2) 我们用前缀码可以避免产生歧义。 我们可以用二叉树来生成前缀码 每个前缀表示树叶的位置,每个树叶的位置不一样,所以不会出现重复前缀。 定理2的证明也是画出二叉树的方法 例题: 如图,...

    7.2 根树及其应用(2)

    我们用前缀码可以避免产生歧义。
    在这里插入图片描述
    我们可以用二叉树来生成前缀码
    在这里插入图片描述
    每个前缀表示树叶的位置,每个树叶的位置不一样,所以不会出现重复前缀。

    在这里插入图片描述
    定理2的证明也是画出二叉树的方法

    例题:
    在这里插入图片描述
    如图,先全画出来。接下来再删减:
    在这里插入图片描述

    最优二叉树:
    在这里插入图片描述
    简单来说就是用 树叶层数 X 树叶权数 再加和(也可以用所用分支点的和来表示)。里面树的权最小的树我们称为最优二叉树。

    在这里插入图片描述
    看到例题就懂了
    在这里插入图片描述

    最佳前缀码:
    在这里插入图片描述

    例题:
    在这里插入图片描述
    在这里插入图片描述
    注意最佳前缀码可能是不唯一的。
    在这里插入图片描述

    练习1:
    在这里插入图片描述
    练习2:
    设T是如下的二元树T,下面()是对T先根遍历访问所有结点的结果?
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • 卡方检验在计数资料中的应用示例一、卡方检验的基本思想像之前理解正态分布、t分布一样,这次也要先理解一下 分布的函数图像变化趋势:卡方分布只有一个参数:自由度 ,自由度决定分布曲线的形状。自由度的变化...

    557617a4dc940fe76b3ffad8dd6e6049.png

    检验,是一种用途颇广的假设检验方法,在此暂且讨论
    检验应用于计数资料的统计分析。

    6b8b33852b80360c9bf77b32537edf10.png
    卡方检验在计数资料中的应用示例

    一、卡方检验的基本思想

    像之前理解正态分布、t分布一样,这次也要先理解一下

    分布的函数图像和变化趋势:

    48ca956d97ce0f579e0574829b35acc5.png

    卡方分布只有一个参数:自由度

    ,自由度决定分布曲线的形状。

    6af03f052a11d5fddfd303eeb25bf9d1.png
    自由度的变化导致曲线形状的变化
    • 卡方分布的重要特性:可加性

    9477cc51f38b6e9f24bcf9fab745f2ac.png
    • 卡方检验的判断标准:自由度一定,
      值越大,P 值越小;
      值越小,P 值越大。

    二、四格表资料的卡方检验

    四格表资料中,只有四个数据是该表的基本数据,其余数据都由此四个数据推算出来。

    这种类型的数据,本质上是两个样本率的比较,所用的统计学方法是两个样本率的比较的卡方检验。

    四格表资料的卡方检验操作示例:

    • spss在处理计数资料时,首先应给频数资料加权。
    进行卡方检验后的结果判读:

    34857d59b1cf34ab3cb76cca63681067.png
    在卡方检验结果的判读中,图表下方的小字行十分重要。
    有几个单元格的期望值计数小于5,和样本量一起决定采用上表哪一行的卡方检验结果。

    fc29ed5ae0e2890057421bfb0567e452.png
    在本例中,n = 200 ,所有的 T
    5,故直接看第一行检验结果即可。

    本例题的假设检验完全流程:

    1. 建立假设检验,确定检验水准

    ,即AB两种药物治疗某疾病的有效率相等

    ,即AB两种药物治疗某疾病的有效率不等

    = 0.05

    2. 计算检验统计量

    通过软件如SPSS来实现,采用第一行结果:P < 0.05

    3. 确定P值,作出推断结论

    P

    ,结论为按所取的检验水准
    ,拒绝
    ,接受
    ,差异有统计学意义,可认为两种药物治疗某病的有效率不等。

    三、配对四格表资料的卡方检验

    配对设计的计数资料,其观察结果有四种情况:++ ;+- ;-+ ;--。当比较两种样本的阳性率何者为高时,两阳性组合和两阴性组合的检验结果意义不大,主要探究A+B-和A-B+两种情况阳性率的差异。

    在人工计算过程中,根据b.c两种结果计数之和是否大于40,选择不同的卡方值计算公式。

    在SPSS软件操作中,与前例四格表资料不同的是,配对四格表的检验要用McNemar法。

    配对四格表资料的卡方检验示例:

    • 对计数资料进行加权。
    • 做两个样本之间的关联性分析,获取列联相关系数,做一致性检验。

    题目:甲乙两试剂检测血清,分别得到阳性结果和阴性结果若干,做卡方检验分析该实验结果。

    结果判读:

    e9c785b951757d724a437a54491c740d.png
    题目样本量为138(>40),小字行提示所有单元格期望值计数均大于5,故结果采用卡方检验第一行判断。
    P < 0.05,判断甲乙两试剂有关联。(结合Pearson列联系数可以判断关联性的大小)
    McNemar检验(上图第四行)检验b.c两结果是否一致,研究乐见P<
    ,说明假设
    :b=c 不成立,再根据数据 b 和 c 的大小关系得出专业结论,判断两试剂的阳性率何者更高。

    165b8efc6689b617c468c7e54627d615.png
    列联系数=0.189,因为列联系数的范围为[0,1],0代表无关联,因此判断两试剂有关联但关联性很低。
    Kappa值判断两试剂的一致率,范围[0.1],结果判读两试剂的一致率也很低。
    展开全文
  • 天Application的介绍Application的应用1.通过Application传递数据Application数据共享Application数据缓存容易出现的错误Application的生命周期保活进阶利用 Activity 提升权限 Application的介绍 ...
  • 第七季主要是给大家介绍一下Java面向对象中的继承,包括:继承的概念、为什么要继承、继承的类型及特性、extends关键字、final关键字、implements关键字、superthis关键字、子类中如何调用父类中的有参、无参构造...
  • 在16位的处理器上,做加法的指令是add,但是他每次只能做8位或者16位的加法,除此之外,还有一个带进位的加法指令adc(Add With Carry),他的指令格式add一样,目的操作数可以是8位或者16位的通用寄存器或者内存...
  • 第七章讲的是程序的运行环境,程序都是有相对应的运行环境来支撑的,运行环境是操作系统硬件的综合。CPU只能解释其固有的机器语言,不同种类的Cup机器语言也不一样,在编写完源代码进行编译后得到本地代码,再由...
  • 第六章 堆排序 最小堆最大堆:近似的完全二叉树 A[parent(i)]<=A[i]或者A[parent(i)]>=A[i] 建堆复杂度O(n) 排序O(nlgn) ...第七章 快速排序 与归并排序一样用分治思想 主元pivot可...
  • 第七周内容

    2019-04-08 16:45:00
    VLAN是一种比较新的技术,工作在OSI参考模型的第2层和第3层,一个VLAN就是一个广播域,VLAN之间的通信是通过第3层的路由器来完成的。与传统的局域网技术相比较,VLAN技术更加灵活,它具有以下优点:...
  • 第七周总结

    2019-04-25 09:24:25
    每天过着一样的生活,做着一样的事,匆匆忙忙的,没有什么意义。 这个周结束了应用文写作课程 唯一不同的是我看了一本书 讲的是作者作者身边的朋友、、、他为身边的朋友解忧愁、唯独自己的忧愁解不了、、、、、 ....
  • -ansible-doc是ansible模块的文档说明,针对每个模块都有详细的说明及应用案例介绍,功能Linux系统的man类似,必须掌握 三种 -ansible-console是ansible为用户提供的交互式工具,用户可以在ansible-console虚拟出来...
  • 如何利用平台特性 三部分 移动应用的构件掌握移动开发 移动开发的掌握主要通过时间精力投入,投入多寡取决于所学的平台,不同平台不一样。AndroidQT(注:原文如此,右图中黑莓以微弱优势取胜QT)是最容易学习...
  • 如何周成为数据分析师05数据可视化之打造升职加薪的报表 本文是如何周成为数据分析师的五篇教程如果想要了解写作初衷可以先行阅读周指南温馨提示如果您已经熟悉数据可视化大可不必再看这篇文章或只挑选部分 ...
  • 上期更新第七期:飞猪APP优化火车票改签流程本次分两期分享尼尔森十大交互原则在设计上的应用这次是尼尔森交互原则01期其实很多大佬作者都写过这样的文章,内容大致相似度很高,大家都不离开重点去展开说明。...
  • 在n(feature)m(#sample)量级不同时选择svmlr速度不一样 2.特点和应用: 最大间距,分类器 3.kernel的关系: 不用这样算(见下图),用kernel函数(比如高斯kernel)算出了更好的featur...
  • 第七周周中总结

    2017-10-12 22:23:47
    对于区间离散化粗略的理解将所有区间端点排序,对应新的区间标记排序,再根据原来的点把排序原区间对应起来形成离散后的坐标,和数组离散化一样把范围缩小可以用数组表示出来,线段树应用离散
  • 7章 在C#中使用对象 学习重点 弄清楚内置对象的概念会使用几个常用对象 学习难点 内置对象的理解使用 一对象概述 中有几个常用的内部对象用来存储信息如ApplicationSession Cookie这些对象服务器控件一样也是...
  • 机器蜂4000可以完成工蜂的工作而... 记住,对于应用中的其它类来说,RoboBee普通的工蜂并没有什么功能上的区别。它们都实现了IWorker接口,所以对于相关的程序来说它们工作起来是一样的。但是你可以用is关键字来区
  • Android 二 单元

    2019-07-24 21:10:37
    Application的生命周期上下文的应用场景 Application是什么? ApplicationActivity,Service一样,是Android框架的一个系统组件,当Android程序启动时系统会创建一Application 对象,用来存储系统的一些信息。 ...
  • 就像用户有一个可以和应用沟通的可视化界面一样,开发者同样需要一个接口和应用交互。REST,即表现层状态转移,它不是一个协议或者标准。它只是一种软件架构风格,或者是为编写应用程序定义的一组约束,旨在简化应用...
  • 二十课Arduino 闪烁LED LED是用于许多不同应用的小型强光灯首先我们将学习闪烁LED即微控制器的Hello World它就像打开关闭灯一样简单建立这个重要的基线将为你提供坚实的基础以实现更复杂的实验 必需的组件 你...
  • 1.twisted框架介绍Twisted是用Python实现的基于事件驱动的...就像Python一样,Twisted也具有“内置池”(batteries-included)的特点。Twisted对于其支持的所有协议都带有客户端服务器实现,同时附带有基于命令行的...
  • 网络层模型就是一个参考模型,也就是说有这么个层的定义,就像是项目中的dao、service、controller三层架构一样,每一层都有自己的工作要干,互联网协议就按照不同的作用分为osi层或tcp/ip五层或tcp/ip四层。...
  • 快速排序采用的思想合并排序是一样的,即分治法。快速排序的分治思想表现为: 1、首先从待排序的数中选择一个作为基数,基数的选择对于排序的性能有很大的影响,也是快排改进的关键所在。 2、分治,将比
  • 队列一样,也是一种操作受限的线性表数据结构 队列的操作 入队出队 入队:放一个数据到队列尾部 出队:从队列头部取一个元素 队列的分类 顺序队列链式队列 用数组实现的队列叫作顺序队列 用链表实现的...
  • 微信小程序亦是手机应用程序,只是它依附于微信这个APP,但是它的行为及展示布局依然参考原生APP的方式人机交互。唯一不同的是它实现页面使用的是web技术而已。展现给用户或终端的视觉感受基本上一样。而应用程序...
  •  函数能提高应用的模块性,代码的重复利用率。  与C一样,Python提供了许多内建函数,比如print()。同时也可以自己创建函数,这被叫做用户自定义函数。  1、定义一个函数  你可以定义一个由自己想要功能的...

空空如也

空空如也

1 2 3 4 5 ... 9
收藏数 180
精华内容 72
关键字:

和第七应用一样的