android中的持久服务/线程

android中的持久服务/线程,android,multithreading,service,network-programming,Android,Multithreading,Service,Network Programming,我最近刚开始使用android框架,正在寻找建议/设计模式,以用于以下情况: 应用程序是服务器/客户端结构。服务器应始终运行(或至少在终止后不久重新创建),但客户端可以根据需要关闭。为了完成服务器,我知道我想扩展服务并使用启动_STICKY功能并在后台运行它 我有点不知道如何继续,因为我想在服务器内部创建几个持久的网络连接。重要的是连接是线程化的,并且可以异步运行。很多文档都指向为此使用AsyncTask,但我根本不需要从网络线程引用UI线程,连接也不会终止,所以我希望有人能给我指出一个更好的方

我最近刚开始使用android框架,正在寻找建议/设计模式,以用于以下情况:

应用程序是服务器/客户端结构。服务器应始终运行(或至少在终止后不久重新创建),但客户端可以根据需要关闭。为了完成服务器,我知道我想扩展
服务
并使用
启动_STICKY
功能并在后台运行它

我有点不知道如何继续,因为我想在服务器内部创建几个持久的网络连接。重要的是连接是线程化的,并且可以异步运行。很多文档都指向为此使用
AsyncTask
,但我根本不需要从网络线程引用UI线程,连接也不会终止,所以我希望有人能给我指出一个更好的方向

我的概念想法是让网络线程绑定到服务以存储事件,然后客户端也可以绑定到服务以检索事件。我不确定用于这些网络线程的结构

服务器应始终运行

很少有应用程序需要这样做。从统计上说,你的可能不是其中之一。用户用任务杀手之类的东西攻击像你这样的人,并在市场上对他们的设备使用造成损害的行为给予一星级评级。我强烈建议您重新考虑这个设计决定

所以我希望有人能给我指出一个更好的方向

普通的普通Java线程就可以了。根据线程的性质,您可以考虑使用线程池。这一部分与其他Java环境中没有显著区别。请记住,当今绝大多数安卓设备都是单核设备,而且您只有这么多的堆空间(只有16MB),因此拥有大量的o'线程并不太好

我的概念性想法是让网络线程绑定到服务以存储事件

网络线程是服务的一部分,因此不需要绑定到它

服务器应始终运行

很少有应用程序需要这样做。从统计上说,你的可能不是其中之一。用户用任务杀手之类的东西攻击像你这样的人,并在市场上对他们的设备使用造成损害的行为给予一星级评级。我强烈建议您重新考虑这个设计决定

所以我希望有人能给我指出一个更好的方向

普通的普通Java线程就可以了。根据线程的性质,您可以考虑使用线程池。这一部分与其他Java环境中没有显著区别。请记住,当今绝大多数安卓设备都是单核设备,而且您只有这么多的堆空间(只有16MB),因此拥有大量的o'线程并不太好

我的概念性想法是让网络线程绑定到服务以存储事件


网络线程是服务的一部分,因此不需要绑定到该服务。

应用程序的本质是它随时都需要网络连接,或者它与服务无关。可能不会有太多线程(1-10个),它们是通过服务终止的吗?@Ian Elliott:不,它们不是通过服务终止的。你需要关闭它们,否则当Android终止进程时它们就会消失。不要从服务中泄漏线程。我重复一遍:不要从你的服务中泄漏线程。应用程序的本质是它需要随时连接网络,否则它是不相关的。可能不会有太多线程(1-10个),它们是通过服务终止的吗?@Ian Elliott:不,它们不是通过服务终止的。你需要关闭它们,否则当Android终止进程时它们就会消失。不要从服务中泄漏线程。我重复一遍:不要从您的服务中泄漏线程。