1.Activity 的生命周期与 Dialog 的不一样 AlertDialog.Builder builder=new AlertDialog.Builder(context);

2.这个context 是Activity的上下文 3.Dialog 要在Activity 销毁前 dismiss()掉,不然就窗体溢出

在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。 差别就是代表着不同的生命周期吧。

更多相关文章

  1. 开始android的HelloWorld
  2. android singleTask使用情况,场景分析
  3. 关于Android中的四大组件(Activity)
  4. Android(安卓)Fragment 生命周期图
  5. Android菜单使用小结
  6. 解决Android手机 屏幕横竖屏切换
  7. Android(安卓)Intent常见的FLAG
  8. 认识 Android(安卓)Service
  9. context、getApplicationContext()

随机推荐

  1. android中SharedPreference的使用
  2. android应用程序的混淆打包(转)
  3. How to download sourcecode of android
  4. Cocos2dx 复制文本到剪切板(Android(安卓)
  5. Android(安卓)CircularFloatingActionMen
  6. Android(安卓)中文 API (17) —— TextSwit
  7. Android(安卓)启动过程
  8. Android去哪儿客服端(4)
  9. Android(安卓)studio导入新项目关于Gradl
  10. android 自定义ViewAnimator文字轮播广告