Android单例线程与服务器通信

标签 android android-asynctask singleton android-handler background-thread

这主要是一个设计决策问题。
我有一个 Activity 、一个广播接收器和一个与我的服务器对话的类(称之为 ServerAccess)。

ServerAccess 自然需要在自己的线程中,因为它将处理一些网络任务。该 Activity 需要根据 ServerAccess 的结果更新其 UI(因此它需要某种方式来访问 UI 线程)。广播接收器也发送需要发送数据给ServerAccess。

我的问题是,我应该让 ServerAccess 成为一个单例线程吗?如果是这样,你如何在 Android 中实现它?我将其设为单例的原因是每次从服务器发生任何数据交换时,我都需要在开始交换数据之前从服务器查询一些基本的用户信息。我不想在每次广播接收器收到广播或每次打开 Activity 时都查询此基本用户信息。相反,我认为更好的主意是获取单例 ServerAccess(如果它已经创建)并开始交换数据。如果 ServerAccess 已经实例化,那么它应该已经从服务器获取了基本的用户信息。

现在 AsyncTask 会是推进这个的方式吗?或者在我的应用程序类中创建一个线程 like so ?或者单例服务会是更好的主意?

最佳答案

我确实认为你必须让它成为单例。要创建单例类,请创建该类的静态对象,然后创建静态方法 getInstance() ,如果类的对象为 null,则创建类的实例,否则返回实例 ..

示例:

          public class ServerAccess{
               public static ServerAccess severAccess = null;
               public static ServerAccess getInstance(){
                   if(serverAccess != null)return serverAccess;
                    serverAccess = new ServerAccess();
                     return serverAccess;
               }
           }

关于Android单例线程与服务器通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28997558/

相关文章:

Android Studio - 公司域名

android - 谷歌地图 : how to get address in android

android - 如何避免在 Android EditText 中执行 onTextChanged

android - 如何查看用户是否为新注册用户

java - 异步加载内容时闪烁

android - RecyclerView : Async image-loading

Android 如何在 onDestroy() 后重新连接到 AsyncTask 并重新启动 onCreate()?

javascript - 引用 JS 对象中的内部变量

iphone - Objective C 中的 int 问题

Java多线程纠错——线程安全单例