Here, in this answerActivity
實例保存在WeakReference<Activity>
變量中。這樣可以避免內存泄漏。這樣做是否是一種好的做法?是否將活動實例保存在WeakReference中是一種很好的做法
public class BackgroundService extends IntentService {
private static WeakReference<Activity> mActivityRef;
public static void updateActivity(Activity activity) {
mActivityRef = new WeakReference<>(activity);
}
}
我正在使用mActivityRef.get()
並將其轉換爲所需的活動對象。使用該對象,訪問活動中的方法。
的目的是從服務的訪問活動的方法,這個代碼的工作,但按照該意見,我很困惑是否使用與否
我已經提到了document尚未明確。
我已經實現了[LocalBroadcastManager](https://stackoverflow.com/a/25172526/2820534)它正在完成任務,但我們可以相信這個廣播嗎?會一直處理? – Prabs
@Prabs:我不知道你的意思是「相信這個廣播」或「總是處理」。根據定義,可能沒有註冊某個事件。但是,在這種情況下,服務可以瞭解它並採取其他措施。例如,您可以發送本地廣播,並且如果您沒有前景用戶界面來接收該事件,則該服務可以改爲「通知」。請參閱[本示例應用程序](https://github.com/commonsguy/cw-omnibus/tree/v8.5/EventBus/LocalBroadcastManager)。 – CommonsWare