最近接触到了一个开源项目
开源项目妹纸
项目结构
![这里写图片描述 开源项目(妹纸&gank.io)学习_开源项目](//dev-img.mos.moduyun.com/20231024/bd41cf9a-13fa-460e-9dda-0c19eef5a26b.png)
1.关于Gson
final static Gson gson = new GsonBuilder()
//为了避免使用Gson时遇到locale影响Date格式的问题,使用GsonBuilder来创建Gson对象,
// 在创建过程中调用GsonBuilder.setDateFormat(String)指定一个固定的格式
.setDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")
.serializeNulls()
.create();
Gson默认处理Date对象的序列化/反序列化是通过一个SimpleDateFormat对象来实现的,通过下面的代码去获取实例
DateFormat.getDateTimeInstance()
为了避免因环境不同而导致序列化结果不同,我们要手动设置格式。
serializeNulls的作用
在json数据的值为null时,可以保证输出键值对形式,比如{a,null},如果不设置,则输出{}.
2.复制链接到剪切板
public class AndroidUtils {
//text为内容,success为复制成功的提示文字
public static void copyToClipBoard(Context context, String text, String success) {
ClipData clipData = ClipData.newPlainText("meizhi_copy", text);
ClipboardManager manager = (ClipboardManager) context.getSystemService(
Context.CLIPBOARD_SERVICE);
manager.setPrimaryClip(clipData);
Toast.makeText(context, success, Toast.LENGTH_SHORT).show();
}
}
当Activity完全运行起来,回回调onPostCreate生命周期方法
@Override protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
new Handler().postDelayed(() -> setRequestDataRefresh(true), 358);
loadData(true);
}
此方法在onWindowFocusChanged之前执行。