Android代码中this是什么意思?

比如说在一个调用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是啥意思???

java小学三班
浏览 2723回答 4
4回答

慕丝5230278

类是模板(图纸),对象是真实存在的产物(具体物品是按图纸设计的),你要想调用类中的方法必须有一个对象,这个对象包含了类中定义的属性和方法。那么通常在new创建了对象,然后调用该对象的方法。在调用方法的时候会传入2个隐式参数 this和super,那么这个this就是指代当前对象,也可以理解是调用该方法的对象。                                                          这“player=MediaPlayer.create(this,R.raw.test)”里面的this和调用 public void onCreate()方法的对象是同一个。至于MainActivity.this这是一种写法主要是在内部类中使用的多,因为在内部类中时this关键字指代的是内部类的对象本身,但是你如果想在内部类中使用外部类的this时候需要加上外部类的类名如:MainActivity.this   MainActivity-类名,这样就能指代外部类的对象了。

慕数据8267187

ZUBKUQZCRHKGKMUOLRXWMDZCVBPCCIPSIOBRJEKHHHDZPMXAOODLBXTQWRIVNPVUREAKNJPCENPCSCGPPIYXVXTQQTJOHXOXTOXMQLUXNQGCVFAWKHXFVYBDHOKGQFBRAKZCJYBEHEADMJLBOJLOXGCEUEAJDEIKTRGIYBRABXMIXGVRHKNPGVXGJACSBENQIXMCFVDTWZTDQLUWGHRMJMPEZOKZQGWMCSCPZHDOKGWFVYVCVLTWTCENJZJFDZCLZCFIRGDFGUDTPLIKRBKTWDGWFBYHWZWLJEHJTCLORHWZMACZJMVFADSVFNWYBENQRUDAZOLAXNDNWGORYHCFVYUKZJYPRTPFWLBEAQSNWYHEHKRUXMPFIPZITJGQADRHMNRMWZAJSCEVWLAXGXTIYHKGHJSILUQNCXNKTCXTDGJMPROQYGJFIRUKYBXHSBQMJLOXHQZOGHDGVWAPLOKMOKGWEPSIEOXTSORADZCFILAKUPEBXURUXAPYMBXACZISBKTCNCDAWSIRUXMCYGUDNQTBRHKTDMOETWTCYHPLTQFUKFIYBRGCOCROYPMHRMURAPKHJNXCEHXGHIXGPZPRURNWWFVRVYHWGIXAXMVLVYBKMNXMYAPSOKBYHKVKQEZPFOXHCFIXFSOEHKZVKNDSLBKMAQZISVLBDZADAPFCFAQSMLFOZPWFVBZIIGSBBOFPOVEXLDJJFPVYOGCVUJPSYRUJPGNDUWCLOPMJNHGGVDAHQGWNZZWWZOSOOLLBKUTRCJPVMTCCVLIEAFMLBVOOKNNBXMRCSLSCLBHZPORRYMFSLBOFDCBEOXYROEAACLSVSSIYKRXAZIHHXEOUEXNOASRVLYKRXXKAMOEUUDRNGDGCJIYOYOOOKRHUHPSUSLIZFLLRHGVYKRFOHVEBBJAUFIPWWMKICEMPFVEUDMVDPKHJMIEGVEHKVDTVSVQZVZBY

老白一个

他处于那个类,就是那个类的对象

Kamey

是当前Activity下的Context对象,称上下文对象,和页面变化有关的业务代码通常要设置context参数,好依据是在哪个Activity上的操作。再深入就去百度context这个类吧。

Finit

当前的activity对象
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Android
Java