`

【Android】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悬浮窗菜单FloatMenuSample.zip

     .addMenuItem(android.R.color.transparent, R.drawable.yw_menu_account, Const.MENU_ITEMS[0], android.R.color.black, this)  .addMenuItem(android.R.color.transparent, R.drawable.yw_menu_favour, ...

    android-support-multidex.jar

    使用android-support-multidex解决Dex超出方法数的限制问题,让你的应用不再爆棚.Google在API 21中提供了通用的解决方案,那就是android-support-multidex.jar. 这个jar包最低可以支持到API 4的版本(Android L及以上...

    Android代码-Auth0.Android

    Auth0.Android Android Java toolkit ...Those using this library from version 1.14.0 and up should start targeting latest android SDK versions, as recommended by Google. Those running into conflicts b

    android 省市二级联动数据

    ArrayAdapter<CharSequence> aAdapter = ArrayAdapter.createFromResource(this, R.array.province, android.R.layout.simple_spinner_item); aAdapter.setDropDownViewResource(android.R.layout.simple_spinner_...

    Android之泡泡效果bubble.rar

    Android之泡泡效果bubble package com.ray.bubble; import android.app.Activity; import android.content.Context; import android.graphics.drawable.AnimationDrawable; import android.os.Bundle; import ...

    Mastering.Android.Wear.Application.Development

    This book is for application developers (web, mobile, and desktop) who are interested in building new wearable apps, and mobile developers who already have apps on iTunes or Google Play Store and are ...

    Android support.v7包

    Android support.v7包

    Android.Studio.Game.Development.Concepts.and.Design.14842171

    This one of a kind short book walks any Android developer through the process of creating mobile games using the new Android Studio IDE. Android Studio offers a myriad of tools for developers such as ...

    Android this与Activity.this的区别

    写语句的时候有两种情况: ... 用英文在google搜what‘s difference between this and Activity.this,终于有了结果(其实自己后面用了Java里ClassName.this和this 之前搜的是Activity.this,所以没有结果,这

    android-usb-driver.zip(htc G7 usb驱动)

    在Android设备的使用和开发过程中,USB驱动程序扮演着至关重要的角色。对于HTC G7这款经典的智能手机,正确安装USB驱动是实现与电脑连接、数据传输、刷机等操作的基础。"android-usb-driver.zip"这个压缩包包含了...

    Glide.with(this)报错和android-support-v4.jar下载

    Glide.with(this)报错和android-support-v4.jar下载

    Mastering.Android.Game.Development.1783551771

    If you are an intermediate-level Android developer who wants to create highly interactive and amazing games with the Android SDK, then this book is for you. In Detail Gaming has historically been a ...

Global site tag (gtag.js) - Google Analytics