我非常喜欢开源贡献广场已经对Android社区做了什么,并正在调查他们的最新贡献Otto(事件总线)
深入挖掘我看到Otto使用反射并且没有有序广播(一种模式,其中未消息的消息从一个接收器传递到下一个接收器,听取相同类型的事件)Otto相信更多的火灾和忘记模型.
现在android LocalBroadcastManager在其v4支持库中有(LBM)用于相同的目的,尽管它更笨重并且对传递的对象有更多限制.但在更明亮的一面,它确实支持有序广播,它更像是正常的广播.
Otto和LBM都处于相同的处理空间内,因此就速度而言,我猜两者都是相同的.我能看到的唯一真正的区别是Otto允许您定义自定义事件,而您不必序列化/包裹对象.
因此,我真正的问题是,如果LBM做同样的事情,你何时会使用Otto.
参考文献:
http://nick.perfectedz.com/otto-event-system/
https://plus.google.com/107049228697365395345/posts/6j4ANWngCUY
我正在使用Android SmsManager提供的API sendDataMessage来发送短信,并注意到这种行为似乎从不同的设备发生了变化,这是我的观察.
我能够成功发送消息
我的问题:
如果通过以下步骤强制停止应用程序设置 - >应用程序 - >管理应用程序 - > - >强制停止,android是否会调用活动或应用程序的onDestroy?(如果没有,有没有办法知道应用程序是否因用户触发的强制停止而死亡).
这个问题将是一个问题内容解析器与光标加载器的后续问题. 答案清楚地说明了如何使用内容解析器将记录插入到sqlite Db中.我的问题如下:
例如:
public Loader<Cursor> onCreateLoader(int id, Bundle bundle) {
switch (id) {
case AppConstants.LOADER_ADD_FAV_PHONE_NUM:
ContentValues values = new ContentValues();
values.put(DBHelper.TM_DB_COLUMN_PHONE_NUMBER,
directionOrder);
values.put(TransitMeDBHelper.TM_DB_COLUMN_NAME_ID, selectionArgs[0]);
Uri insertFavStop =getContentResolver().insert(TransitMeContentProvider.CONTENT_URI_INSERT_FAV_PHONE,
values);
break;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
这会运行主UI线程或工作线程中的功能吗?我知道我不会收到回调,因为内容解析器将返回URI而不是包含数据的游标.
我尝试运行此代码,但它表现得有点奇怪..重复插入被记录,它不是很有意义,有人可以向我展示一些使用Loader进行插入操作的正确资源(我看过很多带有查询示例的例子,它可以工作喜欢魅力:))
感谢您的时间 .