java Android如何为后台线程实现LoginDialog?
我正在使用Android 2.1、RoboGuice 1.1和Guice 2.0(没有aop)
我的应用程序有一个后台线程,它在Activity
的onCreate
方法中启动,该方法连接到服务器,可能需要用户提供登录凭据
起初,我在API中找到了PopupWindow
,但我读到in this post它不应该用于此
因此,我试图将我的Activity
注入我的背景线程,并在传递给Activity.runOnUIThread(Runnable r)的Runnable
中打开一个Dialog
,但不幸的是,roboguice在将其注入我的背景线程时正在创建我的活动的新实例
我现在假设实现登录对话框的正确方法是向我的活动发送一个Intent
,并让它显示Dialog
。此外,我假设Activity
需要将Intent
(包含凭证)发送回后台线程
这是正确的还是有更优雅的方法
在this post中,我找到了如何为^{Activity
实例上调用registerReceiver
致意
# 1 楼答案
我建议在活动中创建一个内部类,该类使用RoboAsyncTask,基本上可以访问该活动。这对我很管用。如果需要能够从不同的活动登录,可以将其设置为顶级类,并将片段或活动实例传递到异步任务构造函数中,然后在onSuccess中进行ui更新