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";

}

}

...

}

  1. 在当前上下文中调用getApplication()获取 Application 对象的引用。这里的 Application 对象来自我们自定义的 YambaApplication ,因此需要一个额外的类型转换。
  2. 得到Application 对象的引用之后即可调用其中的函数了,比如getTwitter()。

以上,可以看到我们是如何一步步将StatusActivity中的功能重构到 Application 对象之中的。接下来就利用这些共享出来的功能,实现我们的 Updater Service。