当数据/模型发生变化时通知视图/活动

当数据/模型发生变化时通知视图/活动

问题描述:

我有一个活动A,活动B和一个对象C.我需要从活动A开始活动B,同时开始时我需要对象C来查找用户位置,一旦它必须通过位置对象通知可用的活动B.当数据/模型发生变化时通知视图/活动

我不确定Object C如何通知活动B,因为android dosent允许获取活动引用。

创建一个将在后台查找用户位置的AsyncTask。

完成后,您可以更新用户界面或者为用户创建通知。

研究实施Bound Service。您的位置信息可以在此服务中获取(当然,在另一个线程上),并在绑定到服务时在活动B中检索。

使用Java Observer和Observable classes。
通过在您的数据对象(模型)上扩展Observable类,您可以分配观察者来监听所述数据模型中的更改。当数据改变时,Observer会自动通知并触发update()方法。

update()方法是把你的代码刷新由在数据中的变化的影响的观点,这是其中的观点和数据模型之间的连接发生时(通常在Android活动)一个明显的地方。使用Observer和Observable类的优点在于数据模型,视图和控制器(更新视图的Activity)都是分开的。也就是说,您可以根据需要使用数据模型,如果您更改视图,则不会中断数据模型,反之亦然。这使得您的应用程序更易于理解,并且更容易在以后进行更新。

这里是简单的代码示例:http://www.ootpapps.com/eclipse_projects/ObserverExample.zip