2016-12-25 44 views
0

我編寫了一個消息傳遞應用程序,並且我想在某些其他用戶向他們發送消息時通知用戶。但我無法在我的ContactListActivity中追蹤它,所以我嘗試在我的connection.java類中顯示它(只需在收到新消息時查看contactList時彈出文本)。這是我試圖做的無法顯示來自非活動課程(Android)的祝酒

private final Context mApplicationContext; 
public Connection(context c){ 
mApplicationContext = c.getApplicationContext(); 
/.... 
} 
    System.out.println("Print something"); 
    Toast.makeText(mApplicationContext, " You received a message from "+contactJid, Toast.LENGTH_LONG).show(); //Is called everytime when I receive a message. 
    System.out.printnl("Print something"); // I can print both, I receive the message but toast does not appear 

不要擔心變量名稱。我怎樣才能實現我的目標?我在其他地方使用mApplicationContext,並按照我希望的方式進行操作。

我也嘗試在這個類中創建一個新的ContactListActivity對象,並獲得它的應用上下文,但它也失敗 建設性的反饋是讚賞,所以我可以使問題更清晰。

+0

您在此處獲得回覆?以及爲什麼要從外部發送上下文,然後使用getApplicationContext()。你可以顯示你從哪裏調用Connection() – Rahul

+0

嗯,好像我寫錯了我正在更新的東西,它應該是c.getApplicationContext()。每次收到新消息時都會呼叫Toast – Prethia

+0

您是否打印日誌並確認您收到回覆 – Rahul

回答

1

如果您在日誌中獲得響應,那麼它可能是非UI線程的問題。沒有什麼會從工作線程更新或顯示在UI上,因此只需從主線程更新UI。

Handler handler = new Handler(Looper.getMainLooper()); 
handler.post(new Runnable() { 
    @Override 
    public void run() { 
    //Here you can update your UI 
    } 
}); 
+0

原因是正確的,代碼片段有效,我接受答案 – Prethia

相關問題