0

我有一个名为 PatientDetails 的类,我在其中存储来自 xml 的值,然后需要在同一时间点从服务以及活动中访问其变量和方法?

4

2 回答 2

0

Application共享“助手”类的一种方法是在应用程序的组件中保存对它的单个实例的“静态”引用。例子...

public class MyApp extends Application {

    public static detailsHelper;

    @Override
    public void onCreate() {

        detailsHelper = new PatientDetails();
    }
}

当您需要在任何其他组件中使用“助手”时,Activity您只需按如下名称Service引用它...Application

MyApp.detailsHelper.doSomething();

从技术上讲,在默认情况下,不会出现两个组件同时访问某些内容的情况,因为 AndroidApplication及其所有组件都存在于process单个thread执行中。

但是,如果任何组件执行使用线程的代码,您应该非常小心。例如,Activity使用 anAsyncTask或可能使用 anIntentService创建自己的工作线程来完成工作。在这种情况下,请确保“助手”类中写入数据的任何方法都以线程安全的方式进行。

于 2012-04-14T11:28:27.280 回答
0

这是典型的多线程场景。只要您只是读取数据,您就可以毫无困难地做到这一点。

如果您正在通过您的活动从患者详细信息类中读取数据并通过您的服务将数据写入其中,您将进入运行时异常。在这种情况下,您已仔细同步变量或方法。

于 2012-04-14T11:14:31.427 回答