这主要是一个设计决策问题。
我有一个活动,一个广播接收器和一个与服务器对话的类(称为ServerAccess)。
ServerAccess自然需要在其自己的线程中,因为它将处理一些网络任务。该活动需要从ServerAccess的结果更新其UI(因此需要某种方式来访问UI线程)。广播接收器还会发送将数据发送到ServerAccess的需求。
我的问题是,我应该使ServerAccess成为单例线程吗?如果是这样,您如何在Android中实现?我之所以成为单例,是因为每次从服务器进行任何数据交换时,我都需要从服务器查询一些基本的用户信息,然后才能开始交换数据。我不想每次广播接收方收到广播或每次打开活动时都查询此基本用户信息。相反,我认为一个更好的主意是如果已经创建单例ServerAccess,并开始交换数据。如果已经实例化了ServerAccess,则它将已经从服务器中获取了该基本用户信息。
现在,将使用AsyncTask进行此操作吗?还是在我的Application类like so中创建线程?还是单身人士服务会更好?
最佳答案
我确实认为您必须使其单例。要创建单例类,请创建该类的静态对象,然后创建静态方法getInstance();如果该类的对象为null,则在此创建类的实例,否则返回instance ..
范例:
public class ServerAccess{
public static ServerAccess severAccess = null;
public static ServerAccess getInstance(){
if(serverAccess != null)return serverAccess;
serverAccess = new ServerAccess();
return serverAccess;
}
}