@Override protected Void doInBackground(Word... words) { wordDao.updateWord(words); return null; }被弃用了,用java该如何修改
时间: 2024-02-14 22:15:55 浏览: 22
在 Java 中,可以使用 `CompletableFuture` 和 `Executor` 来实现异步任务。下面是一个示例代码:
```java
CompletableFuture<Void> future = CompletableFuture.runAsync(() -> {
wordDao.updateWord(words);
}, executor);
future.get(); // 等待任务完成
```
这里,`CompletableFuture.runAsync` 方法会创建一个异步任务,并将其提交给指定的 `Executor` 运行。当任务完成时,它会返回一个 `CompletableFuture` 对象,我们可以通过调用其 `get` 方法来等待任务完成。
注意,`CompletableFuture` 和 `Executor` 都是 Java 8 引入的新特性,需要在项目中添加相应的依赖。
相关问题
SeekBar seekBar_y = findViewById(R.id.seekBar_y); seekBar_y.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() { @Override public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) { // 将进度值传递给 AsyncTask new SendDataTask().execute('y'+progress); } @Override public void onStartTrackingTouch(SeekBar seekBar) {} @Override public void onStopTrackingTouch(SeekBar seekBar) {} }); private class SendDataTask extends AsyncTask<Integer, Void, Void> { @Override protected Void doInBackground(Integer... params) { int progress = params[0]; // 将进度值发送到已连接的端口 out.println(progress); return null; } }改成发送不同位置对应的字符型数字
您可以在`onProgressChanged`方法中根据不同的位置来发送不同的字符型数字。例如,如果SeekBar的id为R.id.seekBar_x,您可以使用以下代码:
```
SeekBar seekBar_x = findViewById(R.id.seekBar_x);
seekBar_x.setOnSeekBarChangeListener(new SeekBar.OnSeekBarChangeListener() {
@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
// 根据不同的位置发送不同的字符型数字
switch (seekBar.getId()) {
case R.id.seekBar_x:
new SendDataTask().execute('x' + String.valueOf(progress));
break;
case R.id.seekBar_y:
new SendDataTask().execute('y' + String.valueOf(progress));
break;
// 这里可以添加更多的位置
}
}
@Override
public void onStartTrackingTouch(SeekBar seekBar) {
}
@Override
public void onStopTrackingTouch(SeekBar seekBar) {
}
});
private class SendDataTask extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... params) {
String progressStr = params[0];
// 将进度值发送到已连接的端口
out.println(progressStr);
return null;
}
}
```
在`onProgressChanged`方法中,根据SeekBar的id来判断当前的位置,然后发送相应的字符型数字。在`SendDataTask`中,将字符串类型的进度值发送到已连接的端口。
{ @Override protected Void doInBackground(Void... voids) { try { if (rfd == 1) { reader.Actions.Inventory.perform(); isStarted = true; } else { reader.Actions.TagLocationing.Perform(tag, null, null); isStarted = true; } Log.e("yu", "1"); isOpenRead = true; } catch (InvalidUsageException | OperationFailureException e) { e.printStackTrace(); //Log.e("handle_trigger_error", e.getMessage()); } return null; } }
这段代码是关于Android应用程序中的异步任务的实现。在这个异步任务中,开发人员尝试执行RFID读取标签的操作。如果rfd的值为1,则执行库存操作;否则,执行标签定位操作。如果操作成功,isStarted变量将设置为true。最后,isOpenRead变量也将设置为true。如果出现异常,将打印堆栈跟踪信息,但是被注释掉的Log语句没有被执行。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)