1. getApplicationContext
</pre><pre name="code" class="java">public class MyActivity extends Activity {
public void method() {
mContext = this; // since Activity extends Context
mContext = getApplicationContext();
}
}
this 是因为Activity 扩展了Context,其生命周期是Activity 创建到销毁;
getApplicationContext 取得了的Context是和Application关联的生命周期是应用的创建到销毁;
搞清楚了生命周期就会在使用过程中犯错误. 比如有一个全局的数据操作类,用到了context, 这个时候就要用到getApplicationContext , 而不是用ACtivity, 这就保证了,数据库的操作与activity无关.
2. EIT造型之抽象方法
public abstract class BaseSwipeRefreshFragment<T extends Entity>{
//父类中声明抽象方法
public abstract CommonAdapter<T> getAdapter();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//父类中调用抽象方法,将执行子类中对抽象方法的实现
mAdapter = getAdapter();
}
}
public class ExploreProjectsFragment extends BaseSwipeRefreshFragment<Project> {
//子类中对抽象方法的实现
@Override
public CommonAdapter<Project> getAdapter() {
Log.d(TAG, "ExploreProjectsFragment getAdapter() enter");
return new ProjectAdapter(getActivity(), R.layout.list_item_project);
}
}