`

android 中 涉及到context的时候this和this.getApplictionContext的区别 (转载)

 
阅读更多
在android中常常会遇到与context有关的内容,特写下这篇blog,浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入的是this,那么这个this究竟指的是什么东东呢? 这里的this指的是Activity.this,是这个语句所在的Activity的this,是这个Activity 的上下文。网上有很多朋友在这里传入this.getApplicationContext(),这是不对的。 AlertDialog对象是依赖于一个View的,而View是和一个Activity对应的。 于是,这里涉及到一个生命周期的问题,this.getApplicationContext()取的是这个应 用程序的Context,Activity.this取的是这个Activity的Context,这两者的生命周期是不同 的,前者的生命周期是整个应用,后者的生命周期只是它所在的Activity。而AlertDialog应 该是属于一个Activity的,在Activity销毁的时候它也就销毁了,不会再存在;但是,如果传 入this.getApplicationContext(),就表示它的生命周期是整个应用程序,这显然超过了它 的生命周期了。 所以,在这里我们只能使用Activity的this。
分享到:
评论

相关推荐

    谈谈Android里的Context的使用

    大家好,今天给大家分享一下Android里的Context的一些用法. 这里大致可以分为两种:一是传递Context参数,二是调用全局的Context. 其实我们应用启动的时候会启动Application这个类,这个类是在AndroidManifest.xml...

    Android Context使用例子.

    在Android开发中,`Context`是一个非常核心的概念,它就像是应用程序的一个全局环境或者上下文,提供了与系统服务交互的能力。`Context`的理解和正确使用对于编写健壮的Android应用至关重要。下面将详细介绍`Context...

    数据池连接Name jdbc is not bound in this Context解决方案

    如果仍然遇到“Name jdbc is not bound in this Context”的错误,可能的原因包括:配置文件未正确放置、配置错误、JDBC驱动未包含在应用的类路径中,或者Tomcat服务未成功读取和解析配置文件。解决这类问题通常需要...

    org.springframework.context-3.1.1.RELEASE.jar

    org.springframework.context-3.1.1.RELEASE.jar java 开发专用

    012_android 之消息提示toast 和Context

    在Android开发中,消息提示和上下文(Context)是两个非常基础且重要的概念。本教程“012_android 之消息提示toast 和Context”将深入讲解这两个关键知识点,帮助开发者更好地理解和运用它们。 首先,我们来谈谈...

    Android的context使用

    本文将详细介绍Android中Context的使用,并通过一个简单的Demo展示如何在工具类和View中灵活地获取和使用Context。 首先,我们要明白Context的三种主要类型:Application、Activity和Service。它们都是Context的...

    Context-Menu.Android源码

    【Context-Menu.Android源码】是一个专门为Android平台设计的开源项目,主要目的是提供一个自定义上下文菜单(Context Menu)的实现。在Android系统中,上下文菜单通常用于响应长按事件,显示与选定项相关的操作选项...

    Android Context与GetApplicationContext的区别及使用1

    总结,理解Context的使用和区别至关重要,它不仅涉及功能实现,还关系到应用的性能和稳定性。正确选择和管理Context可以帮助我们构建更健壮、高效的Android应用程序。在实际开发中,应根据需求选择合适的Context类型...

    spring-context.jar jar包 上下文

    jar包分享,你懂的 spring-context.jar spring-context.jar spring-context.jar spring-context.jar spring-context.jar

    android demo,BaseAdapter传递context的应用

    总结来说,`BaseAdapter`中的`Context`应用主要涉及视图创建、资源访问、事件处理和依赖注入等关键任务。通过理解这些应用场景,我们可以更好地设计和实现自定义适配器,从而提高Android应用的用户体验。

    反射获取Context的实例

    在Android开发中,反射是一种强大的编程技术,它允许我们在运行时检查和操作类、接口、字段和方法。本文将深入探讨如何通过反射获取`Context`的实例,并展示如何利用反射实现一个集成`Toast`的工具类。这在某些场景...

    org.springframework.context.support-3.0.5.RELEASE.jar

    org.springframework.context.support-3.0.5.RELEASE.jar

    android中Context深入详解

    本文将深入探讨 Android 中 Context 的知识和继承关系,帮助读者更好地理解 Context。 1. Context 认知 Context 译为场景,一个应用程序可以认为是一个工作环境,在这个工作环境中可以存在许多场景,例如 coding ...

    Android全局变量和Context

    Android全局变量和Context的实现方法

    Android代码-Android 轻量级适配器

    import android.content.Context; import com.yuyh.easyadapter.abslistview.EasyLVAdapter; import com.yuyh.easyadapter.abslistview.EasyLVHolder; import java.util.List; public class ListViewAdapter ...

    Android代码-MyToast

    import android.content.Context; import android.view.Gravity; import android.view.LayoutInflater; import android.view.View; import android.widget.ImageView; import android.widget.TextView; import ...

    Android-Context-Menu.Android.zip

    Android-Context-Menu.Android.zip,你可以很容易地添加令人敬畏的动画上下文菜单到你的应用程序。,安卓系统是谷歌在2008年设计和制造的。操作系统主要写在爪哇,C和C 的核心组件。它是在linux内核之上构建的,具有...

    org.springframework.context-3.0.2.RELEASE.jar

    org.springframework.context-3.0.2.RELEASE.jar

    Android-SVProgressHUD-弹出框样式的载入视图效果.zip

    项目地址:https://github.com/saiwu-bigkoo/Android-SVProgressHUD 效果图:如何使用使用超简单:SVProgressHUD.show(context);ok.另外,还有其他方式打开:比如,有关遮挡背景的:SVProgressHUD.showWithMaskType...

    Java4Android 16_this的使用方法

    在Android开发中,`this`经常被用作Activity或Fragment的上下文(Context)引用。例如,当我们需要创建一个Toast或者Intent时,通常会传入`this`作为上下文参数: ```java public class MainActivity extends ...

Global site tag (gtag.js) - Google Analytics