2012-01-24 36 views
0

我使用的是Android 2.1,RoboGuice 1.1和Guice 2.0(沒有aop)。
我的應用程序有被在連接到服務器的ActivityonCreate方法開始,可能需要用戶在登錄提供憑據的後臺線程。Android - 如何實現後臺線程的登錄對話框?

起初,我發現PopupWindow在API中,但我閱讀in this post它不應該用於此。

所以,我想我的Activity注入我的後臺線程,並打開傳遞給Activity.runOnUIThread(Runnable r)一個Runnable一個Dialog但不幸的是它注入我的後臺線程時roboguice創造我的活動的新實例。

我現在假設實現登錄對話框的正確方法是將Intent發送到我的活動並讓它顯示Dialog。此外,我假設Activity需要發送Intent(包含憑據)回到後臺線程。
這是正確的還是有更好的方法呢?

this post我發現如何註冊爲Intent一個接收器。但是哪個Activity實例應該在後臺線程中調用registerReceiver

問候

+0

你是什麼意思「試圖注入myActivity到我的後臺線程」?那是roboguice的術語嗎? –

+0

我的後臺線程由RoboGuice創建,因爲它是一個簡單的POJO。在這個類中有一個字段'@Inject private MyActivity mainActivity;'也由RoboGuice設置。 –

+0

如果'runOnUiThread'不是一個選項,那麼我認爲你需要的不是一個Intent而是一個Handler。 –

回答

0

我建議建立在使用RoboAsyncTask活動的內部類,基本上可以訪問活動。這對我來說很好。如果您需要能夠從不同的活動登錄,您可以將其設置爲頂級類並將片段或活動實例傳遞給異步任務構造函數,並在onSuccess中執行ui更新。