2012-04-14 20 views

回答

0

這是一個典型的多線程場景。只要您只是閱讀數據,您就可以毫無麻煩地完成任務。

如果您正在通過您的活動從患者詳細信息類中讀取數據並通過您的服務向其寫入數據,則您將進入運行時異常。在這種情況下,您已經仔細地同步了變量或方法。

0

共享「助手」類的一種方法是在應用程序的Application組件中保存對其單個實例的「靜態」引用。例如...

public class MyApp extends Application { 

    public static detailsHelper; 

    @Override 
    public void onCreate() { 

     detailsHelper = new PatientDetails(); 
    } 
} 

當你需要使用任何其他組件的「助手」,如ActivityService您只需通過Application名稱引用它,如下......

MyApp.detailsHelper.doSomething(); 

從技術上講,在默認條件下,不存在這樣的兩個組件在同一時間訪問,因爲Android Application及其所有組件存在於單個process中,而單個thread的執行。

但是,如果任何組件執行使用線程的代碼,則應該非常小心。例如,Activity使用AsyncTask或可能使用IntentService,它創建自己的工作線程來完成工作。在這種情況下,確保寫入數據的'helper'類中的所有方法都以線程安全的方式進行。

相關問題