|
|
51CTO旗下网站
|
|
移动端

简化 StatusActivity

《Learning Android(中文版)》第8章服务,在本章,我们将动手创建一个服务。这个服务的任务是在后台运行的,获取用户在Twitter上最新的时间轴消息,并更新到应用上。本节为大家介绍简化 StatusActivity。

作者:李亚舟/任中龙/杜钢译来源:电子工业出版社|2012-07-27 11:37

简化 StatusActivity

现在获取Twitter对象的功能已经被移动到YambaApplication了,接下来需要对StatusActivity进行简化,在其中使用YambaApplication提供的功能。下面是新版PostToTwitter AsyncTask的样子。

  1. class PostToTwitter extends AsyncTask<String, Integer, String> {  
  2. // 在触发时负责发起后台操作  
  3. @Override  
  4. protected String doInBackground(String... statuses) {  
  5. try {  
  6. YambaApplication yamba = ((YambaApplication) getApplication()); //.  
  7. Twitter.Status status = yamba.getTwitter().updateStatus(statuses[0]); //.  
  8. return status.text;  
  9. } catch (TwitterException e) {  
  10. Log.e(TAG, "Failed to connect to twitter service", e);  
  11. return "Failed to post";  
  12. }  
  13. }  
  14. ...  

在当前上下文中通过调用getApplication()来获取Application对象的引用。因为我们已经自定义了一个YambaApplication对象,因此需要进行类型转换,将Application转换为YambaApplication。

得到应用对象的引用之后即可调用其中的方法,比如getTwitter()方法。

你已经看到,我们是如何一步步重构 StatusActivity的,将其中的通用功能移动到一个共享的Application对象之中。既然已经做好了准备,接下来就利用这些共享出来的通用功能,实现我们的服务UpdaterService。

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

游戏关卡设计

《半条命》作者倾心写就 暴雪总裁等业内专家强力推荐 盛大公司专业团队翻译 一起来创造引人入胜的游戏体验吧! 任何精彩游戏的核心部分...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊