Java 如何从以前的活动通知当前活动

Java 如何从以前的活动通知当前活动,java,android,android-intent,Java,Android,Android Intent,我有两项活动。 我有一项活动,需要获取facebook好友的数据、他们的活动以及 将所有这些数据保存到数据库中,然后显示一个包含特定信息但不包含所有信息的页面 这需要很多时间。所以在做这一切之前,我把一个意图转移到另一个活动中 所以活动#1在后台创建解析器并将其保存在数据库中。 但现在我需要在所有计算完成后通知我的活动2,以便 同时启用一些UI按钮以显示现在存储在数据库中的数据 如果你真的需要这两种活动(因为你不需要活动,如果它的唯一任务是下载数据),那么AsyncTask就不好,因为它被设计为

我有两项活动。 我有一项活动,需要获取facebook好友的数据、他们的活动以及 将所有这些数据保存到数据库中,然后显示一个包含特定信息但不包含所有信息的页面 这需要很多时间。所以在做这一切之前,我把一个意图转移到另一个活动中 所以活动#1在后台创建解析器并将其保存在数据库中。 但现在我需要在所有计算完成后通知我的活动2,以便
同时启用一些UI按钮以显示现在存储在数据库中的数据

如果你真的需要这两种活动(因为你不需要活动,如果它的唯一任务是下载数据),那么
AsyncTask
就不好,因为它被设计为附加到特定的
活动

您更愿意做的是启动
服务
(其中包含
异步任务
,或者更好的是启动
IntentService
)。当它完成工作时,您可以执行以下操作:

Intent finish = new Intent(com.mypackage.intent.ACTION_DOWNLOADCOMPLETE);
sendBroadcast(finish);

在您的活动中#2与一起收听此广播。

除了加载之外,您还需要活动1吗?如果不是,那么你设计应用程序流的方式是错误的。当活动转到后台(暂停、停止)时,您在那里启动的任何东西都不会继续工作(除非您将其放入AsyncTask或IntentService等的另一个线程中)。