我应该如何将单例对象传递给Android活动?

我应该如何将单例对象传递给Android活动?,android,singleton,arguments,Android,Singleton,Arguments,我正在开发一个Android应用程序,它使用两个单例对象:一个用于业务逻辑(类似于MVC中的模型),另一个用于蓝牙连接。有些活动显示数据并需要访问前者,而有些活动允许用户连接/断开连接并需要访问后者 传递这些对象的首选方式是什么?活动的论点?全局对象 您可以使用应用程序类。它是需要维护全局应用程序状态的基类。您可以通过在AndroidManifest.xml的标记中指定其名称来提供自己的实现,这将导致在创建应用程序/包的流程时为您实例化该类 通常不需要对应用程序进行子类化。在大多数情况下,静态单

我正在开发一个Android应用程序,它使用两个单例对象:一个用于业务逻辑(类似于MVC中的模型),另一个用于蓝牙连接。有些活动显示数据并需要访问前者,而有些活动允许用户连接/断开连接并需要访问后者


传递这些对象的首选方式是什么?活动的论点?全局对象

您可以使用
应用程序
类。它是需要维护全局应用程序状态的基类。您可以通过在AndroidManifest.xml的标记中指定其名称来提供自己的实现,这将导致在创建应用程序/包的流程时为您实例化该类

通常不需要对应用程序进行子类化。在大多数情况下,静态单例可以以更模块化的方式提供相同的功能。如果您的单例需要全局上下文,则可以为检索它的函数提供一个上下文,该上下文在首次构造单例时在内部使用context.getApplicationContext()

参考-

Ex-在应用程序类中定义

  public class AppData extends Application{

    Object ob = new Object(); //Global Obj - Can be anything String etc
  }
在活动中初始化,如-

   AppData ad= (AppData)getApplicationContext();
   ad.ob = //yourValue
跨活动访问->

  Object obj = ((AppData)getApplicationContext()).ob;
并在清单中给出应用程序类的名称-

    <application
    android:name=".AppData"
     >

您可以使用
应用程序
类。它是需要维护全局应用程序状态的基类。您可以通过在AndroidManifest.xml的标记中指定其名称来提供自己的实现,这将导致在创建应用程序/包的流程时为您实例化该类

通常不需要对应用程序进行子类化。在大多数情况下,静态单例可以以更模块化的方式提供相同的功能。如果您的单例需要全局上下文,则可以为检索它的函数提供一个上下文,该上下文在首次构造单例时在内部使用context.getApplicationContext()

参考-

Ex-在应用程序类中定义

  public class AppData extends Application{

    Object ob = new Object(); //Global Obj - Can be anything String etc
  }
在活动中初始化,如-

   AppData ad= (AppData)getApplicationContext();
   ad.ob = //yourValue
跨活动访问->

  Object obj = ((AppData)getApplicationContext()).ob;
并在清单中给出应用程序类的名称-

    <application
    android:name=".AppData"
     >

您可能想退房。这个依赖注入框架(针对Android进行了优化)允许轻松地将单例注入到您的活动/片段中。

您可能想签出。这个依赖注入框架(针对Android优化)允许轻松地将单例注入到您的活动/片段中

// define this code in your common data access class which use thought your app or application master class    

private static Object object=null;
public synchronized static Object getInstance(){
    if(object==null){
        object = new Object();
    }
    return object;
 }

 // this way define your two object.