有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java Android如何为后台线程实现LoginDialog?

我正在使用Android 2.1、RoboGuice 1.1和Guice 2.0(没有aop)
我的应用程序有一个后台线程,它在ActivityonCreate方法中启动,该方法连接到服务器,可能需要用户提供登录凭据

起初,我在API中找到了PopupWindow,但我读到in this post它不应该用于此

因此,我试图将我的Activity注入我的背景线程,并在传递给Activity.runOnUIThread(Runnable r)Runnable中打开一个Dialog,但不幸的是,roboguice在将其注入我的背景线程时正在创建我的活动的新实例

我现在假设实现登录对话框的正确方法是向我的活动发送一个Intent,并让它显示Dialog。此外,我假设Activity需要将Intent(包含凭证)发送回后台线程
这是正确的还是有更优雅的方法

this post中,我找到了如何为^{注册接收器。但是在后台线程中,我应该在哪个Activity实例上调用registerReceiver

致意


共 (1) 个答案

  1. # 1 楼答案

    我建议在活动中创建一个内部类,该类使用RoboAsyncTask,基本上可以访问该活动。这对我很管用。如果需要能够从不同的活动登录,可以将其设置为顶级类,并将片段或活动实例传递到异步任务构造函数中,然后在onSuccess中进行ui更新