传递给Intent构造函数时,从事件处理程序传递此类与ClassName.this之间的区别是什么?

yba*_*kos 8 java android event-handling commonsware

在早期的Android编程教程(第192页)中,我们看到了一个实现LunchList#onOptionsItemSelected.在这个实现中,我们看到两个Intent传递给startActivity:一个传递构造函数LunchList.this,另一个传递构造函数this.

有什么不同?

见这里的第78-91行.注意如何onOptionsItemSelected在内部类中声明.

在Android/Java中this,事件处理程序或通过反射进行功能绑定的上下文中是否有变化的价值?两个Intent实例都可以通过this吗?

Jim*_*imN 11

在Java中,this引用包含类,并ClassName.this引用第一个包含其名称的类ClassName.事件处理程序通常被编写为匿名的内部类,因此如果要引用事件处理程序包含的类(而不是事件处理程序的类),则需要指定ContainingClass.this,而不是this.

参考:http: //docs.oracle.com/javase/specs/jls/se7/html/jls-15.html#jls-15.8.4