2013-05-09 55 views
0

我在按活動的線性佈局佈置按鈕。使用「getBaseContext」或「this」使用Toast顯示消息時

private void DisplayToast(String msg) 
{ 
    Toast.makeText(getBaseContext(), msg, 
    Toast.LENGTH_SHORT).show(); 
} 

,第二個是:

,當我點擊它,一個消息在屏幕上使用吐司類

兩種方法工作正常,我

第一個是出現

private void DisplayToast(String msg) 
{ 
    Toast.makeText(this, msg, 
    Toast.LENGTH_SHORT).show(); 
} 

我的問題是什麼是之間的尊重10和this ,當我應該使用getBaseContext(),當我應該使用this

+0

看到這裏http://stackoverflow.com/questions/9605459/android-why-must-use-getbasecontext-instead-of-this – 2013-05-09 18:37:28

+2

簡短的回答是,你應該基本上都不使用'getBaseContext()',除非你知道正是爲什麼你需要使用它;-)不正確地使用它很容易發生內存泄漏,並且它很少真正需要你通常與'YourActivity.this'或'getApplicationContext()'確定。 – FoamyGuy 2013-05-09 18:42:18

+0

getBaseContext()在特殊情況下使用。如果你在Activity下總是preffer使用活動上下文即這個 – 2013-05-09 18:48:34

回答

0

您的活動是上下文,因此可直接與this一起使用。

對於活動無法直接到達的特殊情況,請保留getBaseContext