使应用程序与当前活动进行通信

时间:2012-03-06 10:30:48

标签: android android-activity android-context

我的Android应用使用其Application类(确切地说是其Application子类)来运行线程以从网站检索数据。一旦成功完成,它应该将这些数据提供给正在运行的Activity(我的应用程序中有2个活动)。我怎么能通知Activity这个?如何判断当前Activity是否存在应检索和显示的新可用数据? 谢谢你的回答。

3 个答案:

答案 0 :(得分:2)

如何使用广播系统。

您可以使用getApplicationContext();在Application类中获取上下文 然后你可以发送自己的自定义广播:

Intent i = new Intent();
i.setAction("your.package.customintent.TEST");
context.sendBroadcast(i);

然后,您可以在活动中实现广播接收器以接收广播。 更多信息:http://thinkandroid.wordpress.com/2010/02/02/custom-intents-and-broadcasting-with-receivers/

您可以使用putExtra设置要在Intent中发送的数据 但您也可以将其存储在数据库中,并使用广播让活动知道有新数据可用

答案 1 :(得分:0)

如果您要将此数据存储到内容提供商(假设数据不是那么小),您可以在内容提供商处注册内容观察者。触发器应由活动处理。看here

答案 2 :(得分:0)

这是非常糟糕的做法,因为您永远不知道Application对象何时被销毁。我建议改用服务。在Android开发人员上阅读它!