比如说在一个调用media的小程序中有这么一段代码public void onCreate()
{
//create the media player for this service
player=MediaPlayer.create(this,R.raw.test);
player.setLooping(false);//no repeat no loop
Toast.makeText(this,"Creating Service",Toast.LENGTH_LONG).show();
}这一段代码中有两个this 他们都代表的是啥意思??? public void playSong(View v)
{
Intent in = new Intent(MainActivity.this,MusicService.class);
startService(in);//this will start the service(MusicService)
}还有在MainActivity中这个MainActivity.this是啥意思???
4 回答
已采纳
慕丝5230278
TA贡献2条经验 获得超2个赞
类是模板(图纸),对象是真实存在的产物(具体物品是按图纸设计的),你要想调用类中的方法必须有一个对象,这个对象包含了类中定义的属性和方法。那么通常在new创建了对象,然后调用该对象的方法。在调用方法的时候会传入2个隐式参数 this和super,那么这个this就是指代当前对象,也可以理解是调用该方法的对象。 这“player=MediaPlayer.create(this,R.raw.test)”里面的this和调用 public void onCreate()方法的对象是同一个。
至于MainActivity.this这是一种写法主要是在内部类中使用的多,因为在内部类中时this关键字指代的是内部类的对象本身,但是你如果想在内部类中使用外部类的this时候需要加上外部类的类名如:MainActivity.this MainActivity-类名,这样就能指代外部类的对象了。
Kamey
TA贡献20条经验 获得超4个赞
是当前Activity下的Context对象,称上下文对象,和页面变化有关的业务代码通常要设置context参数,好依据是在哪个Activity上的操作。再深入就去百度context这个类吧。
添加回答
举报
0/150
提交
取消