【问题标题】:Passing data to activity from threaded service将数据从线程服务传递给活动
【发布时间】:2011-01-12 10:09:17
【问题描述】:

如何将数据从线程化服务传递到创建该服务的活动?

这是一个登录场景。用户输入凭据,活动启动一个服务,该服务调用 wcf 服务来确认凭据。完成后,我希望服务告诉活动登录成功/失败。

【问题讨论】:

    标签: android multithreading service android-activity


    【解决方案1】:

    您可以简单地使用AsyncTask 来执行登录检查。建议在执行长时间工作时显示一个对话框,请参阅example 带有进度对话框。

    【讨论】:

    • 感谢您的建议。我只是检查 AsyncTask 而不是服务。
    • @Vladimir:但是这些示例表明我会将 AsyncTask 类作为私有类放在我的活动类中,对吗?我宁愿把它分成一个单独的班级。所以问题仍然存在 - 我如何从 AsyncTask 访问活动?
    • @Clark Kent,你可以组织一些回调。在您的活动中创建一个方法onLogin(boolean result); 并将它的一个实例传递给AsyncTask。因此,在 onPostExecute() 中,您将能够调用 activity.onLogin(result);
    • @Vladimir,如果我没有记错的话,onPostExecute 可以以线程安全的方式进行此调用吗?
    • 是的,你完全正确。该方法在 UI 线程中执行。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-20
    • 1970-01-01
    • 1970-01-01
    • 2012-04-10
    • 1970-01-01
    相关资源
    最近更新 更多