我的应用程序具有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