Foursquare 源码研究之------登录续

原文地址:http://derekzhan.iteye.com/blog/834428

上次说到了登录回调方法onPostExecute,此方法是AsyncTask的方法,当doInBackground方法执行完后调用此方法来处理返回结果.在onPostExecute中主要根据登录结果来做不同的事情,登录成功://发送登录广播

Java代码 复制代码  收藏代码
  1. sendBroadcast(new Intent(Foursquared.INTENT_ACTION_LOGGED_IN));   
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中他使用了

Java代码 复制代码  收藏代码
  1. mTaskThread = new HandlerThread(TAG + "-AsyncThread");   
  2. mTaskThread.start();   
  3. mTaskHandler = new TaskHandler(mTaskThread.getLooper());  
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():

Java代码 复制代码  收藏代码
  1. case MESSAGE_START_SERVICE: //updateWidgets更新组件  
  2.    Intent serviceIntent = new Intent(Foursquared.this, FoursquaredService.class);   
  3.      serviceIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);   
  4.      startService(serviceIntent);   
  5.      return;  
 case MESSAGE_START_SERVICE: //updateWidgets更新组件
    Intent serviceIntent = new Intent(Foursquared.this, FoursquaredService.class);
      serviceIntent.setAction(AppWidgetManager.ACTION_APPWIDGET_UPDATE);
      startService(serviceIntent);
      return;

 启动一个FoursquaredService.

 

接下来返回到主界面 

Java代码 复制代码  收藏代码
  1. // Launch the main activity to let the user do anything.  
  2.                Intent intent = new Intent(LoginActivity.this, MainActivity.class);   
  3.                intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);   
  4.                startActivity(intent);  
 // 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);

 如果登录失败:

Java代码 复制代码  收藏代码
  1. sendBroadcast(new Intent(Foursquared.INTENT_ACTION_LOGGED_OUT));//发送登出广播.  
  2. NotificationsUtil.ToastReasonForFailure(LoginActivity.this, mReason);//根据不同的exception来提示失败信息  
sendBroadcast(new Intent(Foursquared.INTENT_ACTION_LOGGED_OUT));//发送登出广播.
NotificationsUtil.ToastReasonForFailure(LoginActivity.this, mReason);//根据不同的exception来提示失败信息

 最后关闭进度条dismissProgressDialog().

到这里登录就结束了.写的比较乱.呵呵.


Foursquare-即时互动内容网络(Foursquare-Jihui Content Network)是一个基于互联网的多媒体内容分享平台。这个平台提供了一个集结点来分享和发现各种文化艺术、科技创新和社交互动的内容。 在这个平台上,用户可以通过上传和分享各种多媒体内容来表达自己的观点和创意。这些内容可以是图片、视频、音频、短文等形式,涵盖了各个领域的内容。用户可以将自己创作的作品或者感兴趣的内容发布到平台上,让更多的人看到和参与讨论。同时,用户也可以通过浏览平台上其他用户的内容,发现新奇有趣的创意和有价值的信息。 Foursquare-即时互动内容网络注重用户之间的互动和交流。用户可以在平台上对其他用户的内容进行点赞、评论和分享,表达自己的观点和想法。这促进了用户之间的交流和联结,形成了一个充满活力和创造力的社群。 此外,Foursquare-即时互动内容网络还提供了个性化的推荐功能。根据用户的兴趣和历史行为,平台会为用户推荐相关的内容,帮助用户更好地发现自己感兴趣的主题和内容创作者。 总之,Foursquare-即时互动内容网络是一个多媒体内容分享平台,它连接了用户与创意、艺术和社交互动。通过这个平台,用户可以以各种形式表达自己的创意和观点,与其他用户进行互动和交流,发现和分享有价值的内容和信息。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值