2012-09-08 28 views
1

上我在我的應用程序使用此代碼在幾個地方:的Android吐司工作在模擬器,但不是我的設備

Toast.makeText(getApplicationContext(), "toast", Toast.LENGTH_SHORT).show(); 

當他們幾乎總是表現出對模擬器中運行。他們不顯示的唯一時間是我在調試時花費很長時間來完成代碼。

當我在我的設備上安裝應用程序時,沒有Toasts工作。起初我沒有注意到,但是我意識到我從未見過它們在我的設備上彈出。那是Toast的工作原理嗎?我試過這兩個替代方法: Toast.makeText(this,「toast」,Toast.LENGTH_SHORT).show(); Toast.makeText(ActivityName.this,「toast」,Toast.LENGTH_SHORT).show();

這些都不起作用。所有的吐司都在仿真器(2.2,2.3,4.1)中工作,但沒有任何工作在我的設備上(Galaxy Nexus 4.1)。

+1

'吐司'通知應該肯定會出現在設備上。首先想到的是,我聽說'getApplicationContext()'可能有點陰暗。如果可能的話,可以從任何已知的「視圖」中嘗試'.getContext()'。另外,你是否看到來自其他應用程序的「Toast」? (不能想到一個地方檢查他們從我的頭頂...) – Eric

+0

ActivityName.this而不是getAppliationContext() – NaserShaikh

+0

當我嘗試顯示一個按鈕上的吐司點擊我改變了我的代碼來查看。的getContext()。這仍然在我的模擬器中工作,但不在我的設備上。我也嘗試過ActivityName.this,這也可以在模擬器中使用,但不能在我的設備上使用。我注意到其他設備顯示敬酒,所以我不知道我的設備是問題而不是代碼。 – dtc

回答

1

您爲了顯示吐司而寫的這一行是100%正確的,烤麪包應該出現。它沒有錯誤。

問題是在類似的地方,你寫這些行.. !!


知道實際的問題,一個需要檢查和debug整個代碼。

但是當它涉及到猜問題有可能是,

  1. 你讓你Toast在某些if..else條件未在代碼中部分得到真正

  2. Toast執行控制不去

  3. Stringvariabl ES附有Toast字符串,這些變量是null

  4. 只是爲了檢查,你的ToastLog取代,看看會發生什麼。

+0

謝謝你的建議。問題在於模擬器中出現了Toa​​sts。如果我將其更改爲Log,它們也會顯示在Log中。但是,它們不會顯示在我的特定設備上。我發現他們確實出現在其他人的設備上,以至於讓我更加困惑。 – dtc

6

我有這個問題,發現我已經在設備設置中設置我的應用程序不顯示任何通知。在允許設備設置下的通知後,一切正常。

希望這會幫助一些其他可憐的靈魂不花一個下午找到答案。

+0

我可能是那個可憐的靈魂。我從來不會想到這一點。你至少救了我一個下午。做得好! – seekingStillness

相關問題