我有一个每 15 分钟运行一次数据库刷新的应用程序。
periodicworkrequest 在我的主要活动的 onCreate 中排队。
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
updateDatabasePeriodically();
public void updateDatabasePeriodically() {
PeriodicWorkRequest updateDatabaseRequest =
new PeriodicWorkRequest.Builder(UpdateDatabaseWorker.class, 15, TimeUnit.MINUTES).build();
WorkManager.getInstance(getMainActivityContext()).enqueue(updateDatabaseRequest);
}
Run Code Online (Sandbox Code Playgroud)
更新数据库工作人员:
@Override
public Result doWork() {
// Do the work here--in this case, upload the images.
updateDatabase();
// Indicate whether the task finished successfully with the Result
return Result.success();
}
private void updateDatabase() {
AppDatabase appDatabase = AppDatabase.getInstance(context);
Log.i(TAG, "Updating alerts at: " + DateTimeHelper.getHumanReadableTime(now));
}
Run Code Online (Sandbox Code Playgroud)
问题是每次作业执行时都会完成两次工作,如我的日志语句所示
2019-11-22 10:20:23.185 24987-25085/com.package.myapp I/com.package.myapp.UpdateDatabaseWorker: Updating …Run Code Online (Sandbox Code Playgroud) 我的 docker 安装停止工作,所以我决定卸载 docker 并重新安装它。
首先,卸载它不起作用,我会通过 Windows 卸载功能卸载它,然后当我重新启动笔记本电脑时,该应用程序会重新出现。我还以管理员权限在 powershell 中运行了这个脚本。
然后我终于以某种方式卸载了它,并打开了我第一次用来安装它的同一个安装程序。它没有打开(甚至没有要求我允许进行更改)所以我想我会重新下载安装程序。
重新下载它并发生了完全相同的事情,再试了几次,突然它要求我允许开始。我兴高采烈地单击“是”并等待安装程序启动。
然而,什么也没发生。我又试了几次,突然它起作用了,我的安装程序开始了。不幸的是,它挂在“安装 CLI 插件”上。我让它在那里坐了 30 多分钟,等待某事发生,直到我点击红色的 x,然后当它提示我是否要停止安装时“是”。这并没有关闭窗口,所以我强行关闭它通过任务管理器。
我已经重新启动了我的笔记本电脑很多次,点击了更多的安装程序,但没有回到安装屏幕。任何帮助都会很棒。
Get-WmiObject -Class Win32_OperatingSystem | % Caption
Microsoft Windows 10 Pro
Get-WmiObject -Class Win32_OperatingSystem | % Buildnumber
18363
Run Code Online (Sandbox Code Playgroud)