Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/185.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 如何在所有活动中创建一个共享线程?_Java_Android_Multithreading_Sockets - Fatal编程技术网

Java 如何在所有活动中创建一个共享线程?

Java 如何在所有活动中创建一个共享线程?,java,android,multithreading,sockets,Java,Android,Multithreading,Sockets,这是关于android编程概念的 我想知道会发生什么事? 假设我有一个Android项目。 它有两项活动 活动-A: 包含到服务器的套接字线程 活动-B: 根本没有插座。只是UI渲染 如何确保活动A中的此线程, 每当我参加任何我喜欢的活动时,总是跑步 您在本项目中有哪些经验? 你最好的设计理念是什么 将线程传递给下一个 你打过电话吗 创建可以在任何位置(任何位置)共享的静态线程 活动访问) 还是别的什么 注意:我们不想重复创建线程。我们也不希望它被摧毁。除非我们退出应用程序。您想要的是“服务”而

这是关于android编程概念的

我想知道会发生什么事? 假设我有一个Android项目。

它有两项活动

活动-A: 包含到服务器的套接字线程

活动-B: 根本没有插座。只是UI渲染

如何确保活动A中的此线程, 每当我参加任何我喜欢的活动时,总是跑步 您在本项目中有哪些经验?

你最好的设计理念是什么

  • 将线程传递给下一个 你打过电话吗
  • 创建可以在任何位置(任何位置)共享的静态线程 活动访问)
  • 还是别的什么
  • 注意:我们不想重复创建线程。我们也不希望它被摧毁。除非我们退出应用程序。

    您想要的是“服务”而不是“活动”

    您可以在此处阅读有关服务的信息:

    您可能还希望关注活动的生命周期。 你会发现,在安卓系统中,你没有一个完美的匹配电脑的“退出应用程序”

    首先:如果操作系统需要内存,您的活动可能随时关闭。你想在这种情况下做什么? 还要记住,“始终运行”服务对电池寿命不利。因此,您应该仔细规划服务的运行时(即“实际运行的时间”),并将其保持在较低的水平。 如果合适,您最好使用无连接方法(UDP)来避免保持稳定的TCP连接。当然,如果要求使用TCP,这是毫无疑问的

    如果您只想将长时间的下载解耦,使用可能就足够了

    增编:


    我知道我不应该只提供链接。但是读者可能会同意developer.android.com很可能是一个非常稳定的源代码,并且内容非常广泛,可以在这里重复。

    活动-a:包含到服务器的套接字线程。-使用
    服务/异步任务
    。如果没有用户界面,不要使用
    活动
    。“除非我们退出我们的应用程序”-这不像android中听起来那么简单。。。您是否只是退出活动(使用主页或返回按钮)或应用程序中是否有明确的“退出应用程序”按钮?请在Android中签出服务概念您无法阻止
    线程
    被runtime@suitianshi,“无法防止线程被破坏”?这是否意味着如果我在活动A中创建了一个线程对象,然后移动到活动B,意味着活动A中的线程被销毁?伊斯帕斯劳迪乌,谢谢我会。。。。费尔多,没有,没有退出应用程序按钮。我甚至不知道如何退出一个活动,而这个活动可能会关闭我最近打开的所有活动。我以为有System.exit(0)和java一样,但android没有:我明白了。对于我这里的例子,最好将创建的每个线程套接字都放在一个服务中,对吗?因为我需要服务之间针对每个活动进行一些通信,所以我将使用IntentService,对吗@Fildor?嗯,IntentService有助于解耦长时间的操作,尤其是网络通信,是的。如果这符合您的要求,我建议使用一个。但是仔细阅读文件。我不可能在这里解释每个坑都在使用服务。但是delveloper网站确实是一个很好的合作来源。你能解释更多@Fildor吗?如果我在该服务中有一个线程,并且有多个活动绑定到其中呢。是服务中的线程在一个活动移动到另一个活动时被重新创建吗?