当前位置: 首页 > 知识库问答 >
问题:

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

赖明煦
2023-03-14

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

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

共有3个答案

陆绪
2023-03-14
// 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.
甄煜
2023-03-14

你可能想看看匕首。此依赖关系注入框架(针对 Android 进行了优化)允许轻松地将单例注入到您的活动/片段中。

朱昊乾
2023-03-14

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

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

ref-http://developer . Android . com/reference/Android/app/application . html

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"
     >
 类似资料:
  • 我在示例中看到如何将消息字符串传递给亚马逊 sns sdk 的发布方法。但是,是否有如何将自定义对象作为消息传递的示例?我尝试将“消息结构”设置为“json”,但随后我得到错误。我应该将对象值传递到参数中的哪个位置? 有什么例子吗?

  • 我想把<代码>工作流程。睡眠调用我的Cadence活动之一,以便能够正确测试它(并模拟function产生的错误结果)。 在实现之前,我注意到两件重要的事情: 和是单独的类型。 每个活动的第一个参数 - - 是可选的,可以省略 我的尝试: 1.首次尝试 错误: "error":"无法解码活动函数输入字节错误:无法解码参数:0,*internal.Context,json错误:json:无法将对象散

  • 我正在使用GraphQL查询一个对象,该对象将由大约15个不同的REST调用组成。这是我的根查询,我在其中传入查询的ID。这对于正确解析的主要student对象非常有效。但是,我需要弄清楚如何将ID传递给地址解析程序。我尝试将args添加到address对象,但出现了一个错误,表明args没有从Student对象传递下来。所以我的问题是:如何将客户机查询中的参数传递给GraphQL服务器中的子对象

  • 问题内容: 我在php中有对象,每个对象代表一个“项目”以及与之相关的所有信息。 当用户浏览页面时,这些对象应传递给javascript。理想情况下,镜像相同的结构,因此我可以使用Raphael在我的网站上将每个项目及其信息显示为单独的形状。 但是,如何将对象从php转换为javascript? 问题答案: 您可以将PHP对象转换为数组,然后使用JSON函数对其进行编码。之后,从JavaScrip

  • 我有三节课 1.菜单活动 2.LocationUpdateService 3.多重标记器 1.菜单活动 2、LocationUpdateService:(这是服务类) 3、多重标记(活动) 我的问题是:当我打开我的菜单活动我的Toast消息打印发送数据到广播接收器,然后点击按钮我调用MultipleMarker。我无法从服务中获取值。。。但当我按下后退按钮时,我重定向到MenuActivity,此

  • 我是android编程的新手,我试图将自定义对象数组发送到不同的活动中。在第一个活动中,我有一个函数,它创建一个意图并向其中添加对象数组: