文档章节

Activity.this与getApplicationContext()在应用上的不同

公子彦
 公子彦
发布于 2016/03/03 21:53
字数 307
阅读 29
收藏 0

精选30+云产品,助力企业轻松上云!>>>

今天在写一个小例子的时候,其中用到了new AlertDialog.Bulider(XXXXX).setTitle("title").setMessage(mag).show

括号里面我用的是getApplicationContext()来获取当前activity的名称,结果运行程序的时候一直出错。

经过一个小时的排除,终于找到了错误原因,结果是括号里应该用Activity.this(假设Activity为当前activity名称)

为什么呢?

根据我在网上查到的资料,在这里简单总结一下。

1、首先我们需要知道AlertDialog.Bulider()括号里传入的应该是当前语句所在的Activity,而AlertDialog是依赖于一个View的,也就是说,它在这里仅存在一个activity周期。

2、下面我们看一下getApplicationContext()和activity.this,getApplicationContext()得到的是整个应用的生命周期,所以虽然它拿到的也是当前Activity,但是当前activity结束时,也许还有其他activity存在,getApplicationContext()并不会随之销毁。而activity.this则是仅存在于当前activity的这一个生命周期中。

由此可以看出,在两者的使用过程中还需要注意activity的生命周期问题。所以,activity.this可以用在AlertDialog中

,getApplicationcontext()却不能。

公子彦
粉丝 2
博文 11
码字总数 6260
作品 0
程序员
私信 提问
加载中
请先登录后再评论。
Toast.maketext第一个参数context的问题

在Android工程中经常用到 Toast来显示提示,在maketext的第一个参数是要求传递一个context 那么问题来了 有时候是使用getApplicationContext(); 有时候是Activity.this 而有时候又直接是 this...

我叫leo-
2016/04/19
1.8K
0
android学习—— context 和 getApplicationContext()

Context,中文直译为“上下文”。 浅论一下 context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入的是thi...

fjabing
2014/02/19
136
0
android学习—— context 和 getApplicationContext()

在android中常常会遇到与context有关的内容 浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入...

sw3458856
2014/04/29
0
0
android学习—— context 和 getApplicationContext()

在android中常常会遇到与context有关的内容 浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入...

sw3458856
2014/04/29
0
0
context 和 getApplicationContext() 区别

在android中常常会遇到与context有关的内容 浅论一下context : 在语句 AlertDialog.Builder builder = new AlertDialog.Builder(this); 中,要求传递的 参数就是一个context,在这里我们传入...

小罗天使
2014/09/17
4
0

没有更多内容

加载失败,请刷新页面

加载更多

PO设计模式-实现移动端自动化测试

开发环境:python 3.6.5 + selenium 2.48.0 + pytest框架 + Android 5.1 工具:pycharm + Appium + Genymotion 测试机型:Samsung Galaxy S6 #需求:设计3个测试用例#1.实现点击设置->显示-...

osc_cl1ufvfd
15分钟前
6
0
Android之TabLayout和ViewPager组合跳转到指定页面

1 问题 TabLayout和ViewPager组合跳转到具体一个页面 2 解决办法 viewPager?.setCurrentItem(index) index为0说明是第一页,如果是1的话就是第二页,以此类推。...

osc_w4g8kpwc
17分钟前
9
0
Android之解决多语言适配部分TextView内容左对齐和内容一行不排满就到第二行问题

1 问题 1、多语言适配部分TextView内容左对齐 2、内容一行不排满就到第二行问题 2 解决办法 问题1、在TextView里面加入下面参数 android:gravity="center" 问题2、 import android.conte...

osc_u61lmlkv
18分钟前
17
0
SpringBoot2.0+Shiro+MyBatisPlus权限管理系统

项目描述 Hi,大家好,今天分享的项目是《SpringBoot+Shiro权限管理系统》,这是一个SpringBoot+Layui后台管理系统,使用Shiro安全框架,加入访问权限,对不同角色有不同的访问权限,其他管理...

ericxu1116
19分钟前
19
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部