上次说到了登录回调方法onPostExecute,此方法是AsyncTask的方法,当doInBackground方法执行完后调用此方法来处理返回结果.在onPostExecute中主要根据登录结果来做不同的事情,登录成功://发送登录广播
sendBroadcast(new Intent(Foursquared.INTENT_ACTION_LOGGED_IN));
此广播的订阅时在Foursquared类中实现的,首先看此类Foursquared extends Application,Application是android项目运行的一个全局的状态 "Base class for those who need to maintain global application state". 可以在Manifest.xml中指定你自定义的application. 在此类中有一个LoggedInOutBroadcastReceiver 来处理接收到的广播,然后广播发送一个message.此message对应有一个TaskHandler.在foursquare中他使用了
mTaskThread = new HandlerThread(TAG + "-AsyncThread");
mTaskThread.start();
mTaskHandler = new TaskHandler(mTaskThread.getLooper());
上面的方式来创建Handler. 是为了让handler运行在新的线程中. 接下来看handleMessage方法对msg的处理.第一个switch case语句是MESSAGE_UPDATE_USER, 更新一下用户的信息.同时保存在SharedPreferenses中.
接下来开始一个更新UI的Service foursquared.requestStartService(); 主要调用FoursquaredService类的updateWidgets方法来更新widget.也是在Foursquared类中来进行更新,看handleMessage():
case MESSAGE_START_SERVICE: //updateWidgets更新组件
Intent serviceIntent = new Intent(Foursquared.this, FoursquaredService.class);
serviceIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
startService(serviceIntent);
return;
启动一个FoursquaredService.
接下来返回到主界面
// Launch the main activity to let the user do anything.
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
如果登录失败:
sendBroadcast(new Intent(Foursquared.INTENT_ACTION_LOGGED_OUT));//发送登出广播.
NotificationsUtil.ToastReasonForFailure(LoginActivity.this, mReason);//根据不同的exception来提示失败信息
最后关闭进度条dismissProgressDialog().
到这里登录就结束了.写的比较乱.呵呵.
分享到:
相关推荐
《基于地理位置的社交网络研究:以foursquare数据集2011-2013_美国各城市为例》 foursquare数据集是研究基于地理位置的社交网络(LBSN,Location-Based Social Networks)的重要资源,它包含了2011年至2013年间美国...
再者,数据集中的子文件“Foursquare-师兄”可能是对特定用户群体或特定时间段的细化数据。这为我们提供了研究特定主题的机会,比如对比不同用户群体的活动差异,或者分析某一时间段内的热点区域变化。通过对这些子...
当这两者结合,通过“foursquare-datasource-plugin-clouderamanager-v0.9.2-0-g9ac3d25.zip”这款插件,我们可以实现更加高效便捷的CDH集群监控。 该插件的全名是foursquare-datasource-plugin-clouderamanager,...
"Foursquare-JiHui-Content-Network1.zip" 是一个公开的数据集,特别为那些致力于兴趣点推荐系统开发的研究者和开发者准备。这个压缩包内的"CA Dataset"文件包含了未经处理的原始数据,为分析和探索提供了广阔的天地...
Foursquare数据集 Abstract: Foursquare is a location-based social networking website, software for mobile devices. This service is available to users with GPS enabled mobile devices, such as iPhones ...
通过研究Foursquare的源码,开发者不仅可以学习到Android开发的实践经验,还能深入理解地理位置服务的实现,这对于开发类似应用或提升自身技能非常有价值。同时,源码中的最佳实践和设计模式也是学习的重点,可以...
【Android版Foursquare源码解析】 Foursquare是一款流行的社交网络应用,它允许用户“签到”到各个地点,并与朋友分享他们的行踪。在Android平台上,Foursquare的源代码提供了深入理解移动应用开发的宝贵资源,尤其...
国外LBS--Foursquare案例研究报告 PDF
foursquare-ios-api, 用于iOS的Foursquare API v2 用于iOS的 Foursquarefoursquare API的简单 objective-c 包装器。 它允许你将foursquare集成到你的iOS应用程序中。特性简单,小巧,易于使用使用Safari进行身份验证...
通过foursquare源码的研究,我们可以深入理解其背后的设计理念和技术实现,从而在自己的开发工作中借鉴和学习。 首先,我们要明确LBS的基本概念。LBS是指通过定位技术获取用户实时地理位置,并以此为基础提供各种...
foursquare, 用于 python的Foursquare API客户端 foursquare用于 foursquare API的python 包装器。哲学:映射 foursquare one-to-one的端点简洁,简单,Pythonic 调用只处理原始数据,定义你自己的模型功能:pyth
"foursquare-ultrasonic-checkin-4f79a3.pdf"很可能是一份项目文档或教程,详细介绍了如何集成Foursquare API、超声波传感器和1Sheeld库,以及如何编写和上传Arduino代码。这份文档可能涵盖了硬件接线图、代码解释、...
综上所述,“FourSquare NYC 数据集”提供了丰富的签到数据,不仅对于学术研究具有重要意义,也为企业和政府机构提供了宝贵的决策支持。通过对这些数据进行深入分析,可以帮助我们更好地理解城市动态、消费者行为...
#Foursquare API-探索整合特征: * Uses Bower* Uses Grunt咕packages包*grunt-contrib-copy*grunt-contrib-cssmin*grunt-contrib-jshint*grunt-contrib-less*grunt-contrib-uglify*grunt-contrib-watch*jshint-...
Foursquare的Brandbook详细阐述了其VI品牌视觉标准,确保在全球范围内品牌的一致性和独特性。 1. **Foursquare Logo** - Foursquare的标志是其品牌形象的核心,它代表着品牌的精髓和价值。公司强调必须正确使用...
在**node-foursquare-master**压缩包中,包含了库的源代码、示例、测试用例以及可能的文档文件。源代码可以帮助开发者深入理解库的工作原理,以便进行自定义或扩展。测试用例对于确保库的正确性和维护性至关重要,而...
【Foursquare】是一款基于地理位置服务(LBS)的应用,它结合了GPS定位技术与地图服务,旨在为用户提供社交互动和本地商家优惠信息。通过这款应用,用户可以在地图上“签到”(check-in),分享自己的位置,同时探索...
process-warden.zip,一种有助于避免直接使用它们的陷阱的process/processbuilder包装器,一种通过处理其中的一些gotchas inherit来提高其使用安全性的process和processbuilder包装器。