我有一個asynctask做了一些事情,當它完成時,我希望它廣播它完成。發送來自Async服務器的廣播
通常我會這樣做:context.sendBroadcast(new Intent(MYINTENT));
但是asynctask沒有上下文。我已經看到了這個問題的一些答案,建議將該應用程序活動的上下文引用到asynctask。但如果用戶旋轉屏幕,則該引用是不好的。並手動維護引用是一個不好的解決方案(需要太多的創建asynctask,我不控制)。現在的問題是:
1)爲什麼android會像這樣設置?爲什麼我甚至需要一個上下文來發送廣播,當廣播可以註冊並由其他上下文處理?
2)有沒有很好的解決這個問題? (好=需要儘可能少的活動創建asynctask,倖存旋轉等)。
使用'Activity.getApplicationContext()'將Applcation上下文傳遞給'AsyncTasnk'。應用上下文不會受到屏幕旋轉的影響,這意味着在潛在旋轉後對其的引用仍然有效。 – Paul
@保羅很好的解決了技術問題,謝謝。仍然想知道爲什麼我甚至需要發送廣播的背景(從設計的角度來看)。 – Oren