第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定

Activity.this和getApplicationContext()

標(biāo)簽:
Android

大家在做项目时经常会用到Activity.this和getApplicationContext(),就是上下文,到底这两者有啥区别;首先得了解我们平常创建的Activity和Application都是继承了Context类,所以都能拿到Context实例,但是这两者拿到的Context生命周期是不同的,下面依个说明。

activity.this

在自己创建的Activity中也可以简写为this,简单举个例子
在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的参数就是Context,在这里我们传递的是this,就是Activity的上下文。

为什么传this了,而不传getApplication?首先创建一个dialog肯定是依赖于当前Activity是不,Activity销毁dialog也要销毁,所以此dialog的生命周期要小于等于Activity的生命周期,如果传了getApplicationContext()会怎样了,下面就说

getApplicationContext()

此Context是依赖Application的,所以得先了解Application
每个Android APP在运行时,首先会自动创建Application 并实例化,面向整个应用程序,且有且只有一个,也就是大家熟知的单例模式。
Application的作用:
1.初始化应用程序级别的资源,如全局对象,图片资源初始化、环境配置变量、第三方sdk的注册等等。
注:请不要执行耗时操作,否则会拖慢应用程序启动速度
2.数据共享、数据缓存
注:这些共享数据只在应用程序的生命周期内有效,当该应用程序被杀死,这些数据也会被清空,所以只能存储一些具备 临时性的共享数据

所以getApplicationContext()的生命周期很长,是整个应用程序的生命周期,只有当应用销毁了此Context才会销毁。你是要在当前的activity里面创建对话框,如果传递的是this.getApplicationContext(),这是整个应用的上下文,代码怎么会知道你想在哪个具体的activity里面创建对话框呢,所以,在这里应该传入的是你想创建对话框的那个activity的上下文,即Activity.this.

总结

Activity.this 
返回当前activity的上下文,生命周期只是它所在的Activity,activity 摧毁他就摧毁

getApplicationContext()
返回当前应用的上下文,应用销毁他才销毁

原文链接:http://www.apkbus.com/blog-842132-77096.html

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評論
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊有機(jī)會得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報(bào)

0/150
提交
取消