我的應用程序具有UI(使用活動)和服務(使用IntentService實施)。該服務用於向遠程服務器發送數據(同步,使用NetworkStream.Write)以及更新傳輸狀態到UI(使用廣播接收器方法實現)。適用於Android的Mono - 活動服務調用崩潰
這裏是我的問題:
的應用程序正常工作,如果用於NetworkStream.Write緩衝區的大小爲11 KB或更少。然而,如果緩衝區的大小大於11 KB,比如20 KB(爲了發送jpg圖像需要這個大小),那麼服務可以保持正常工作(通過日誌文件驗證),但是UI它消失了(類似於設備的後退按鈕被按下),我找不到恢復它的方法。其中重要的是要指出,在這種情況下,Activity不會進入OnStop()也不會OnDestroy()狀態。
起初我以爲這會是一些應用程序無響應由於服務器延遲導致的相關問題,但約5秒後界面崩潰。
此外,這隻發生在硬件版本。模擬器版本正常工作。
// SEND STREAM: Byte[] outStream = new Byte[20000]; // -- Set up TCP connection: -- TcpClient ClientSock = new TcpClient(); ClientSock.Connect("myserver.com", 5555); NetworkStream serverStream = ClientSock.GetStream(); serverStream.Write(outStream, 0, outStream.Length); serverStream.Flush(); // . . . // RECEIVE STREAM: inStream.Initialize(); // Clears any previous value. int nBytesRead = 0; nBytesRead = serverStream.Read(inStream, 0, 1024); // -- Closing communications socket: -- ClientSock.Close();
Hi Schlangi!這絕對是要走的路:-)!乾杯! – HectorB
@HectorB嘿,很好,我很高興能幫上忙。 – Schlangi