这两个意图启动另一个名为StartActivity的活动。 它们都在不同的环境中运行但不可替换。
Intent intent = new Intent(MainActivity.this, StartActivity.class);
startActivity(intent);
和
Intent intent = new Intent(this, StartActivity.class);
startActivity(intent);
答案 0 :(得分:5)
当此代码出现在MainActivity
的内部类中时,您会看到第一种语法,例如您为View.OnClickListener
调用创建的setOnClickListener()
的匿名内部类实现。它说“我们想要的this
是MainActivity
的实例,而不是View.OnClickListener
实施的实例”。
答案 1 :(得分:0)
当有多个包装类时,您只需要使用MainActivity.this。
E.g。
public class MainActivity extends AppCompatActivity {
Runnable runnable = new Runnable() {
@Override
public void run() {
// this refers to the Runnable
// MainActivity.this refers to the activity
}
};
}