我已经开始将 roboguice 用于其中一个应用程序。为了进行比较,我从带有 RoboActivity 和三个 RoboAsyncTask 的初始屏幕开始。当我使用普通活动和普通线程开发它并传递给它的上下文和处理程序时,在整个启动活动执行期间,甚至没有一次 GC 被调用。但是使用 RoboActivity 和 @Context 、3 个 POJO 依赖注入和三个 RoboAsync 任务,GC_FOR_MALLOC 被调用了 5 次。
Roboguice 代码
@ContentView(R.layout.activity_splash)
public final class Splash extends RoboActivity {
/**
* Constant TAG used in debugging
*/
public static final String TAG = "###Splash###";
/**
* To initialize singleton instance
*/
@Inject
private PreferenceManager mPreferenceManager;
@Inject
private DeviceInfo mDeviceInfo;
@Inject
private Handler mHandler;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
...
在此之下,我在 RoboAsyncTask 中有简单的 Web api 调用。
我是不是做错了什么……或者使用 RoboGuice 会导致不必要的对象创建。