System directories
Method | Result |
---|---|
Environment.getDataDirectory() | /data |
Environment.getDownloadCacheDirectory() | /cache |
Environment.getRootDirectory() | /system |
External storage directories
import kotlinx.coroutines.* | |
val myData by lazy(LazyThreadSafetyMode.NONE) { | |
loadDataFromNetwork() | |
} | |
suspend fun loadDataFromNetwork(): MyData { | |
// 模拟网络请求 | |
delay(1000) | |
return MyData(/* ... */) |
fun countDownCoroutines( | |
total: Int, | |
scope: CoroutineScope, | |
onTick: (Int) -> Unit, | |
onStart: (() -> Unit)? = null, | |
onFinish: (() -> Unit)? = null, | |
): Job { | |
return flow { | |
for (i in total downTo 0) { | |
emit(i) |
public static <T extends ApiResponse> Observable<T> CallToObservable(Call<T> originalCall) { | |
return Observable.<T>create(subscriber -> { | |
Call<T> call = originalCall.clone(); | |
CallArbiter<T> arbiter = new CallArbiter<>(call, subscriber); | |
subscriber.add(arbiter); | |
subscriber.setProducer(arbiter); | |
Response<T> response; | |
try { | |
response = call.execute(); | |
if (!response.isSuccessful()) { |
public class DisableableAppBarLayoutBehavior extends AppBarLayout.Behavior { | |
private boolean mEnabled; | |
public DisableableAppBarLayoutBehavior() { | |
super(); | |
} | |
public DisableableAppBarLayoutBehavior(Context context, AttributeSet attrs) { | |
super(context, attrs); | |
} |
public static class ExampleViewHolder extends RecyclerView.ViewHolder | |
implements View.OnClickListener { | |
private int originalHeight = 0; | |
private boolean isViewExpanded = false; | |
private YourCustomView yourCustomView | |
public ExampleViewHolder(View v) { | |
super(v); | |
v.setOnClickListener(this); |
@IntDef({Status.IDLE, Status.PROCESSING, Status.DONE, Status.CANCELLED}) | |
@Retention(RetentionPolicy.SOURCE) | |
@interface Status { | |
int IDLE = 0; | |
int PROCESSING = 1; | |
int DONE = 2; | |
int CANCELLED = 3; | |
} |
System directories
Method | Result |
---|---|
Environment.getDataDirectory() | /data |
Environment.getDownloadCacheDirectory() | /cache |
Environment.getRootDirectory() | /system |
External storage directories
public class ReactiveAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> { | |
String[] mDataset = { "Data", "In", "Adapter" }; | |
private final PublishSubject<String> onClickSubject = PublishSubject.create(); | |
@Override | |
public void onBindViewHolder(final ViewHolder holder, int position) { | |
final String element = mDataset[position]; | |
holder.itemView.setOnClickListener(new View.OnClickListener() { |