[英]What's the difference between these two pieces of code?
这是两个意图,它们启动另一个名为StartActivity的活动。 它们都在不同的上下文中运行,但是不可替换。
Intent intent = new Intent(MainActivity.this, StartActivity.class);
startActivity(intent);
和
Intent intent = new Intent(this, StartActivity.class);
startActivity(intent);
当此代码出现在MainActivity
的内部类中时,您将看到第一种语法,例如,为setOnClickListener()
调用创建的View.OnClickListener
的匿名内部类实现。 它说:“在this
,我们要的是实例MainActivity
中,而不是实例View.OnClickListener
执行”。
只有存在多个包装类时,才需要使用MainActivity.this。
例如
public class MainActivity extends AppCompatActivity {
Runnable runnable = new Runnable() {
@Override
public void run() {
// this refers to the Runnable
// MainActivity.this refers to the activity
}
};
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.