public void click4(View view) {
startWork();
}
public void click5(View view) {
startWork3();
}
public void click6(View view) {
}
private void startWork1() {
OneTimeWorkRequest oneTimeWorkRequest = new OneTimeWorkRequest.Builder(MyWork.class)
.setInitialDelay(10, TimeUnit.SECONDS)
.build();
WorkManager.getInstance(this).enqueue(oneTimeWorkRequest);
}
private void startWork2() {
LocalDateTime currentDateTime = LocalDateTime.now();
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
String formattedDateTime = currentDateTime.format(formatter);
Data data = new Data.Builder().putString("putData", "输入数据123" + "," + formattedDateTime).build();
OneTimeWorkRequest oneTimeWorkRequest = new OneTimeWorkRequest.Builder(MyWork.class)
.setInitialDelay(2, TimeUnit.SECONDS)
.setInputData(data)
.build();
WorkManager.getInstance(this).enqueue(oneTimeWorkRequest);
}
OneTimeWorkRequest oneTimeWorkRequest = null;
private void startWork() {
Constraints constraints = new Constraints.Builder().setRequiredNetworkType(NetworkType.CONNECTED).build();
oneTimeWorkRequest = new OneTimeWorkRequest.Builder(MyWork.class).setConstraints(constraints).build();
WorkManager.getInstance(MainActivity.this).getWorkInfoByIdLiveData(oneTimeWorkRequest.getId()).observe(this, new Observer<WorkInfo>() {
@Override
public void onChanged(WorkInfo workInfo) {
switch (workInfo.getState()) {
case BLOCKED:
Log.e("调试_临时_log", "堵塞");
Toast.makeText(getApplicationContext(), "堵塞", Toast.LENGTH_SHORT).show();
break;
case RUNNING:
Log.e("调试_临时_log", "正在运行");
Toast.makeText(getApplicationContext(), "正在运行", Toast.LENGTH_SHORT).show();
break;
case ENQUEUED:
Log.e("调试_临时_log", "任务入队");
Toast.makeText(getApplicationContext(), "任务入队", Toast.LENGTH_SHORT).show();
break;
case CANCELLED:
Log.e("调试_临时_log", "取消");
Toast.makeText(getApplicationContext(), "取消", Toast.LENGTH_SHORT).show();
break;
case FAILED:
Log.e("调试_临时_log", "失败");
Toast.makeText(getApplicationContext(), "失败", Toast.LENGTH_SHORT).show();
break;
case SUCCEEDED:
Log.e("调试_临时_log", "成功");
Log.e("调试_临时_log", "this_data = " + workInfo.getOutputData().getString("data"));
Toast.makeText(getApplicationContext(), "成功", Toast.LENGTH_SHORT).show();
break;
}
}
});
WorkManager.getInstance(this).enqueue(oneTimeWorkRequest);
}
private void startWork3() {
try {
WorkInfo workInfo = WorkManager.getInstance(MainActivity.this).getWorkInfoById(oneTimeWorkRequest.getId()).get();
Log.e("调试_临时_log", "this_" + workInfo.getState());
} catch (ExecutionException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决
2020-08-25 ABP 依赖注入不了 Can't create component 'xxx.xxx.xxx' as it has dependencies to be satisfied