普通的Android应用程序中,通常有两种Context,Application和Activity,也即getApplicationContext()和Activity的this。

getApplicationContext() 返回应用的上下文,生命周期对应整个应用。若应用销毁,context销毁。【总体来说,使用全局应用程序Context可能是最好的】

Activity.this的context 返回当前activity的上下文,生命周期对应Activity。若activity销毁(比如横竖屏切换等情况),context也会被销毁多次。

getBaseContext() 返回由构造函数指定或setBaseContext()设置的上下文。例如

public Dialog displayDialog(int choice)    {    switch(choice){    case 0:    AlertDialog aDialog = new AlertDialog.Builder(this)    .setIcon(R.drawable.ic_launcher)    .setTitle("Hello World")    .setPositiveButton("OK", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface arg0, int arg1) {Toast.makeText(getBaseContext(), "OK clicked", Toast.LENGTH_SHORT).show();}}).......
这里getBaseContext()返回的是AlertDialog构造函数指定的context,此处不能用this代替,因为上面的this返回的是整个Activity对象对应context,而如果在onClick函数中使用this返回的是AlertDialog的context。


更多相关文章

  1. Manifest.xml中的属性
  2. 【073】Android(安卓)数据存储(SQLite)
  3. Android(安卓)Cursor源码笔记(2)
  4. Android版手风琴(ExpandableListView)
  5. android 事件分发机制(转载)
  6. 蓝牙API
  7. Android再按一次返回键退出程序的实现
  8. Android(安卓)View事件派发机制详解与源码分析
  9. Android(安卓)中文 API (29) —— CompoundButton

随机推荐

  1. android AudioRecorder简单心得
  2. Android 模拟器下载、编译及调试
  3. 捕获android中的Home key
  4. Android菜鸟日记32-游戏中的碰撞
  5. 关于基本控件EditText属性大全详解
  6. android 原生人脸检测
  7. Android studio gradle配置
  8. 【Android(安卓)Native Code开发系列】
  9. Android自学总结――第一篇:关于导入项目
  10. Android使用FastJson