Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/315.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 通过android中的片段运行客户端/服务器_Java_Android_Android Fragments - Fatal编程技术网

Java 通过android中的片段运行客户端/服务器

Java 通过android中的片段运行客户端/服务器,java,android,android-fragments,Java,Android,Android Fragments,我正在尝试将我的java服务器连接到一个android客户端,这是我通过一个简单的活动实现的。现在我想添加一个list/details片段,并能够在服务器之间传递信息,然后返回list和details。我将此示例用作我的列表/详细信息视图片段: 我有3个问题: 然后是否可以从该片段运行服务器,并在服务器之间传递信息? 我将只在主活动中启动连接,还是在所有片段中启动连接? 如果只在主活动中,我如何将信息从片段传递回主活动? 我对安卓非常陌生,而且还在学习,这就是为什么我会问所有奇怪的问题 非常感谢

我正在尝试将我的java服务器连接到一个android客户端,这是我通过一个简单的活动实现的。现在我想添加一个list/details片段,并能够在服务器之间传递信息,然后返回list和details。我将此示例用作我的列表/详细信息视图片段:

我有3个问题:

然后是否可以从该片段运行服务器,并在服务器之间传递信息? 我将只在主活动中启动连接,还是在所有片段中启动连接? 如果只在主活动中,我如何将信息从片段传递回主活动? 我对安卓非常陌生,而且还在学习,这就是为什么我会问所有奇怪的问题


非常感谢

1您无法在片段上运行服务器通信。我的意思是,它必须在不同于UI线程的线程上运行。片段本身在UI线程上运行

从技术上讲,您可以在与片段相同的类上编写服务器代码,只要它在不同的线程上运行,但也知道这一点-片段具有生命周期,这意味着一旦用户移动到另一个片段/活动或返回到启动器-服务器和通信将被终止

您应该创建一个Android服务,该服务可以进行通信,并在后台运行,即使您的应用程序被隐藏/未按您认为合适的方式运行

2只需启动一次连接,无需从每个片段/活动启动连接

3传递数据的方式很多。这通常是有意的,请阅读


实现可能有所不同,但重要的是记住不要在主线程上运行长时间任务,因为它会使应用程序冻结,因此会被Android杀死。

谢谢您的回答!到目前为止,我一直在做的是在每次启动时停止服务器,并在启动下一个活动时启动它。用Asynctask代替android服务是否足够?我只关心在哪里可以读取从服务器返回的字符串。在onPostExecute中?很难知道什么是适用于您的应用程序的最佳解决方案。如果网络通信是短时间的,比如连接到服务器、下载图像,并且当服务器收到答案时,更新UI并完成处理,那么AsyncTask是好的。AsyncTask只是一种在新线程上执行的简单方法,然后能够将结果传回UI,但它不适合长时间运行的任务。这对几秒钟长的任务很有好处。对于一个长期的,连续的通信,服务是答案。BTW如果我的回答有助于你的问题,请考虑接受它。你可能有一个好的链接,我可以参考这是我第一次听到Android服务吗?这是一个很好的阅读,祝你好运!