Context字面意思上下文,位于framework package的android.content.Context中,其实该类为LONG型,类似Win32中的Handle句柄,很多方法需要通过Context才能识别调用者的实例。
比如说Toast的第一个参数就是Context。一般在Activity中我们直接用this代替,代表调用者的实例为Activity,而到了一个button的onClick(View view)等方法时,我们用this时就会报错,所以我们可能使用ActivityName.this来解决,主要原因是因为实现Context的类主要有Android特有的几个模型,Activity、Service以及BroadcastReceiver。
常规需要Context实例的方法主要有各种Service实现的类,比如说SensorManager在实例化时需要
getSystemService(String)方法就必须由Context的实例执行,还有一些私有的文件系统I/O比如说
openFileInput以及常用的Toast的makeText方法。
时间: 2024-11-05 14:46:03