1. sdk 설치한 디렉토리로 이동한다. 2. platform-tools로 이동한다. 3. adb 파일을 확인 후 아래 명령어를 입력한다. 1) adb shell dumpsys battery unplug * 베터리를 빼는 효과 2) 화면을 끈다. (화면이 켜져있으면 active모드에서 넘어가지 않는다) 3) adb shell dumpsys deviceidle step 을 입력한다. 입력 할때마다 상태가 바뀌는데 상태값에 대한 내용은 4가지정도 이다. - IDLE_PENDING (준비중) - SENSING (세팅하세요) - IDLE (Doze모드가 되었습니다.) - IDLE_MAINTENANCE (Doze모드인데 가끔 잠에서 일어납니다) 4) IDLE모드가 되면 Doze모드이므로 바뀔 때 까지 "3)번항목" 명령어를 입력해준다(연타하지는말자)
4. Doze모드를 푸는 방법 1) adb shell dumpsys battery reset 입력한다. 2) adb shell dumpsys deviceidle step 입력한다. 5. 베터리크기 조정 -adb shell dumpsys battery set level 5(숫자값이 베터리 크기)
- bindtViewHolder 메서드는 onCreateViewHolder에서 B 타입으로 넘겨줘야하는데 딱히 방법이 생각나지 않았다..ㅠ
public abstract class BaseAdapter<
A extends ViewDataBinding,
B extends RecyclerView.ViewHolder
>
extends RecyclerView.Adapter<B> {
protected abstract @LayoutRes
int getLayout();
protected abstract B bindViewHolder(A binding);
@NonNull
@Override
public B onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
A binding = DataBindingUtil.inflate(
LayoutInflater.from(parent.getContext())
, getLayout(), parent
, false);
return bindViewHolder(binding);
}
}
2. BaseViewHolder
abstract public class BaseViewHolder<
A extends ViewDataBinding
>
extends RecyclerView.ViewHolder {
protected A mBinding;
public BaseViewHolder(A a) {
super(a.getRoot());
mBinding = a;
}
}
--------------사용 -------
1. Adapter
- 확실히 사용이 간결해졌다.
public class MainAdapter
extends BaseAdapter<
ItemTextBinding
, MainViewHolder
> {
private final ArrayList<String> mArr;
public MainAdapter(ArrayList<String> mArr) {
this.mArr = mArr;
}
@Override
protected int getLayout() {
return R.layout.item_text;
}
@Override
protected MainViewHolder getViewHolder(ItemTextBinding binding) {
return new MainViewHolder(binding);
}
@Override
public void onBindViewHolder(@NonNull MainViewHolder holder, int position) {
holder.bind(mArr.get(position));
}
@Override
public int getItemCount() {
return mArr.size();
}
}
2. ViewHolder
public class MainViewHolder
extends BaseViewHolder<ItemTextBinding> {
public MainViewHolder(ItemTextBinding itemTextBinding) {
super(itemTextBinding);
}
public void bind(String row) {
mBinding.fragTextview.setText(row);
}
}