2012-01-24 31 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更新。