8.1.3. 简化 StatusActivity
优质
小牛编辑
132浏览
2023-12-01
8.1.3.简化 StatusActivity
现在我们可以通过 YambaApplication 获取 Twitter 对象了,接下来需要对 StatusActivity 进行修改,在其中使用 YambaApplication 提供的功能。下面是新版的PostToTwitter:
class PostToTwitter extends AsyncTask<String, Integer, String> {
// Called to initiate the background activity
@Override
protected String doInBackground(String... statuses) {
try {
YambaApplication yamba = ((YambaApplication) getApplication()); //
Twitter.Status status = yamba.getTwitter().updateStatus(statuses[0]); //
return status.text;
} catch (TwitterException e) {
Log.e(TAG, "Failed to connect to twitter service", e);
return "Failed to post";
}
}
...
}
- 在当前上下文中调用getApplication()获取 Application 对象的引用。这里的 Application 对象来自我们自定义的 YambaApplication ,因此需要一个额外的类型转换。
- 得到Application 对象的引用之后即可调用其中的函数了,比如getTwitter()。
以上,可以看到我们是如何一步步将StatusActivity中的功能重构到 Application 对象之中的。接下来就利用这些共享出来的功能,实现我们的 Updater Service。