当数据/模型发生变化时通知视图/活动
问题描述:
我有一个活动A,活动B和一个对象C.我需要从活动A开始活动B,同时开始时我需要对象C来查找用户位置,一旦它必须通过位置对象通知可用的活动B.当数据/模型发生变化时通知视图/活动
我不确定Object C如何通知活动B,因为android dosent允许获取活动引用。
答
创建一个将在后台查找用户位置的AsyncTask。
完成后,您可以更新用户界面或者为用户创建通知。
答
使用Java Observer和Observable classes。
通过在您的数据对象(模型)上扩展Observable类,您可以分配观察者来监听所述数据模型中的更改。当数据改变时,Observer会自动通知并触发update()
方法。
的update()
方法是把你的代码刷新由在数据中的变化的影响的观点,这是其中的观点和数据模型之间的连接发生时(通常在Android活动)一个明显的地方。使用Observer和Observable类的优点在于数据模型,视图和控制器(更新视图的Activity)都是分开的。也就是说,您可以根据需要使用数据模型,如果您更改视图,则不会中断数据模型,反之亦然。这使得您的应用程序更易于理解,并且更容易在以后进行更新。
这里是简单的代码示例:http://www.ootpapps.com/eclipse_projects/ObserverExample.zip