- startService 和 bindService 有什么不同?为什么 bindService 能和 Activity 的生命周期联动?
- 生命周期不同
- 结束方式不同
- 交互方式不同
- bindService 方法执行时,LoadedApk 会记录 ServiceConnection 信息
- Activity 执行 finish 方法时,会通过 LoadedApk 检查 Activity 是否存在未注销/解绑的 BroadcastReceiver 和 ServiceConnection,如果有,那么会通知 AMS 注销/解绑对应的 BroadcastReceiver 和 Service,并打印异常信息,告诉用户应该主动执行注销/解绑的操作
链接:https://juejin.im/post/5c13cd99e51d4522ad6e74ec
- Android 截图功能
/**
* 截图
* @param viewGroup
* @return
*/
public Bitmap getViewGroupBitmap(ViewGroup viewGroup) {
//viewGroup的总高度
int h = 0;
Bitmap bitmap;
// 适用于ListView或RecyclerView等求高度
for (int i = 0; i < hanziCardScroll.getChildCount(); i++) {
h += hanziCardScroll.getChildAt(i).getHeight();
}
// 若viewGroup是ScrollView,那么他的直接子元素有id的话,如下所示:
// h = mLinearLayout.getHeight();
// 创建对应大小的bitmap(重点)
bitmap = Bitmap.createBitmap(hanziCardScroll.getWidth(), h, Bitmap.Config.ARGB_4444);
Canvas canvas = new Canvas(bitmap);
hanziCardScroll.draw(canvas);
return bitmap;
}
网友评论