1.两种上下文: 

(1)Activity.this                               界面的上下文

(2)getApplicationContext()         整个应用程序的上下文

 

2.通常是两者是可以互用,但是如下对话框创建的场景,就只能使用Activity.this,如下:

 package com.itheima.context;

 import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView; public class MainActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
(1)TextView tv = new TextView(MainActivity.this); //这里不能使用getApplicationContext()
} public void click(View view){
(2) AlertDialog.Builder builder = new Builder(this);
builder.setTitle("警告");
builder.setMessage("对话框出来了");
builder.setPositiveButton("确定", null);
builder.show();
} }

在上面(1)和(2)中不能使用getApplicationContext():

(1)TextView tv = new TextView(MainActivity.this);tv是依赖Activity(界面而存在的);Activity销毁,tv也会销毁

如果使用TextView tv = new TextView(getApplicationContext()),可能Activity销毁了,但是整个应用程序还没有销毁,这样这个tv会变成空指针,导致内存泄露。

 

(2)AlertDialog.Builder builder = new Builder(MainActivity.this);

同样创建对话框,对话框也是依赖Activity而存在的,如果使用AlertDialog.Builder builder = new Builder(getApplicationContext());

这个getApplicationContext()是Activity的父类,父类可能由很多子类Activity继承,这样对话框不能定位在哪个Activity上显示,会报错。

 

(1)和(2)中tv和builder的显示都必须绑定特定的Activity界面

Android(java)学习笔记166:上下文的区分的更多相关文章

  1. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  2. java学习笔记之基础篇

    java选择语句之switch   //switch可以用于等值判断 switch (e) //int ,或则可以自动转化成int 的类型,(byte char short)枚举jdk 7中可以防止字 ...

  3. 0028 Java学习笔记-面向对象-Lambda表达式

    匿名内部类与Lambda表达式示例 下面代码来源于:0027 Java学习笔记-面向对象-(非静态.静态.局部.匿名)内部类 package testpack; public class Test1{ ...

  4. Android动画学习笔记-Android Animation

    Android动画学习笔记-Android Animation   3.0以前,android支持两种动画模式,tween animation,frame animation,在android3.0中 ...

  5. 20145330第八周《Java学习笔记》

    20145330第八周<Java学习笔记> 第十五章 通用API 通用API 日志:日志对信息安全意义重大,审计.取证.入侵检验等都会用到日志信息 日志API Logger:注意无法使用构 ...

  6. Java学习笔记:语言基础

    Java学习笔记:语言基础 2014-1-31   最近开始学习Java,目的倒不在于想深入的掌握Java开发,而是想了解Java的基本语法,可以阅读Java源代码,从而拓展一些知识面.同时为学习An ...

  7. Android 数字签名学习笔记

    Android 数字签名学习笔记 在Android系统中,所有安装到系统的应用程序都必有一个数字证书,此数字证书用于标识应用程序的作者和在应用程序之间建立信任关系,如果一个permission的pro ...

  8. Java学习笔记4

    Java学习笔记4 1. JDK.JRE和JVM分别是什么,区别是什么? 答: ①.JDK 是整个Java的核心,包括了Java运行环境.Java工具和Java基础类库. ②.JRE(Java Run ...

  9. java学习笔记12--国际化

    java学习笔记12--国际化 国际化的操作就是指一个程序可以同时适应多门语言,即:如果现在程序者是中国人,则会以中文为显示文字,如果现在程序的使用者是英国人,则会以英语为显示的文字,也就是说可以通过 ...

  10. 【Java学习笔记之二十六】深入理解Java匿名内部类

    在[Java学习笔记之二十五]初步认知Java内部类中对匿名内部类做了一个简单的介绍,但是内部类还存在很多其他细节问题,所以就衍生出这篇博客.在这篇博客中你可以了解到匿名内部类的使用.匿名内部类要注意 ...

随机推荐

  1. macbook pro 一些操作经验记录

    [一]启用root用户 (1)打开终端 (2)输入命令:sudo passwd root (3)给root设置密码 (4)然后再终端输入命令:su root 进行登陆 [二]解压eclipse压缩包, ...

  2. vue中minxin---小记

    定义全局的方法,例如定义过滤器,在很多地方都会用到,就可以定义在minxin中 demo: 数据格式化 保留指定的小数位数 var mixin={ filters:{ fixedNum:functio ...

  3. CodeForces 719B Anatoly and Cockroaches (水题贪心)

    题意:给定一个序列,让你用最少的操作把它变成交替的,操作有两种,任意交换两种,再就是把一种变成另一种. 析:贪心,策略是分别从br开始和rb开始然后取最优,先交换,交换是最优的,不行再变色. 代码如下 ...

  4. ExtWebComponents

    我们很高兴地宣布Sencha ExtWebComponents的早期版本现已推出.ExtWebComponents提供了数百个预构建的UI组件,您可以轻松地将它们集成到使用任何框架构建的Web应用程序 ...

  5. 最短路之SPFA

    解决存在<<<负环>>>的图的单源最短路径: 判断有无负环: 如果某个点进入队列的次数超过N次则存在负环(SPFA无法处理带负环的图) 这里,只介绍用bfs(深搜) ...

  6. css - 单词的自动换行问题

    转载自:解决文档中有url链接时被强制换行的问题 问题 当行内出现很长的英文单词或者url的时候,会出现自动换行的问题,为了美化页面,往往会希望这些很长的英文单词或者url能够断开来,超出的部分换行到 ...

  7. Centos 6.8安装 SVN

    SVN SVN是Subversion的简称,是一个开放源代码的版本控制系统,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subver ...

  8. jmeter持续集成测试中mongodb版本问题

    jmeter测试mongodb,采用的是JSR223 Sampler脚本连接数据库,其中连接数据库用到了SCRAM-SHA1认证机制,代码如下: MongoCredential credential ...

  9. Educational Codeforces Round 19 A

    Description Given a positive integer n, find k integers (not necessary distinct) such that all these ...

  10. Calculation 2 HDU - 3501

    https://vjudge.net/problem/HDU-3501 不会做啊...记一下做法 做法是计算小于n且与n互质的数的和:根据如果gcd(i,n)==1,那么gcd(n-i,n)==1,对 ...