我尝试使用Retrofit 2和OkHttp3将图像从 Android 应用程序上传到 Django 服务器。为此,我曾经RequestBody使用以下几行创建一个实例:
RequestBody requestImageFile =
// NOW this call is DEPRECATED
RequestBody.create(
MediaType.parse("image/*"),
// a File instance created via the path string to the image
imageFile
);
Run Code Online (Sandbox Code Playgroud)
我在下一个方法调用中使用了前一个实例作为参数:
// MultipartBody.Part is used to send also the actual file name
MultipartBody.Part image = MultipartBody.Part.createFormData("image", imageFile.getName(), requestImageFile);
Run Code Online (Sandbox Code Playgroud)
最后,我启动了 Retrofit 界面来完成剩下的工作:
// finally, execute the request
Call<ResponseBody> call = service.upload(image);
call.enqueue(new Callback<ResponseBody>() {
@Override
public void onResponse(Call<ResponseBody> call, Response<ResponseBody> response) {
Log.v("Upload", "success"); …Run Code Online (Sandbox Code Playgroud) 我正在查看https://github.com/android/architecture-samples/tree/dev-dagger/app/src/main/java/com/example/android/architecture/blueprints/todoapp/data/source上的示例/local的dev-dagger分支和TasksLocalDataSource.kt文件中,它们具有以下方法:
override suspend fun getTasks(): Result<List<Task>> = withContext(ioDispatcher) {
return@withContext try {
Success(tasksDao.getTasks())
} catch (e: Exception) {
Error(e)
}
}
Run Code Online (Sandbox Code Playgroud)
通过使用withContextIO 作为调度程序,他们希望协程在 IO 线程上运行。但是tasksDao.getTasks()方法里面的 Room 请求是一个挂起函数。在https://codelabs.developers.google.com/codelabs/kotlin-coroutines/#8的代码实验室中,他们说当它是一个挂起函数时负责在后台线程上Room运行请求(此处getTasks():)这里就是这种情况。那么,使用 a 是不是太多了withContext(ioDispatcher)?我不能像下面这样重写上面的方法吗?:
override suspend fun getTasks(): Result<List<Task>> {
return Success(tasksDao.getTasks())
}
Run Code Online (Sandbox Code Playgroud) ExoPlayer我想知道是否有可在 ? 中使用的工作示例RecyclerView?我发现的所有示例都是基于使用ExoPlayer一个视图 ( PlayerView),但没有适合初学者的示例演示如何在视图可以与可见屏幕连接或分离的环境ExoPlayer中使用。RecyclerView
为什么 ?为什么融入生态系统让我们不用重新发明轮子就可以使用它那么困难ExoPlayer呢Android Framework?可以公平地假设在列表中列出视频是一项常见要求,但没有任何指南或任何内容可以帮助 Android 应用程序开发人员。互联网上的“提示”和“解决方案”很少,在大多数情况下都是令人烦恼的。
我发现的唯一有用的来源是:
Pagingwith 、离线缓存等,这与该方法不太适合)。PagedListAdapterRoomLiveData在《Hands on machine Learning with scikit-learn and tensorflow 2.0》一书的第 17 章中,他们使用 tf.data.Dataset 和 window() 方法将顺序数据集拆分为多个窗口:
n_steps = 100
window_length = n_steps + 1 # target = input shifted 1 character ahead
dataset = dataset.window(window_length, shift=1, drop_remainder=True)
Run Code Online (Sandbox Code Playgroud)
为了将顺序数据集分割成多个窗口,他们使用了以下方法:
dataset = dataset.flat_map(lambda window: window.batch(window_length))
Run Code Online (Sandbox Code Playgroud)
但是当我执行上面的那一行时,出现以下错误:
AttributeError Traceback (most recent call last)
<ipython-input-18-5b215fb4cb71> in <module>()
----> 1 dataset = dataset.flat_map(lambda window: window.batch(window_length))
10 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/data/ops/dataset_ops.py in flat_map(self, map_func)
1650 Dataset: A `Dataset`.
1651 """
-> 1652 return FlatMapDataset(self, map_func)
1653
1654 def interleave(self, …Run Code Online (Sandbox Code Playgroud) android ×3
android-room ×1
exoplayer ×1
image-upload ×1
kotlin ×1
okhttp ×1
retrofit2 ×1
suspend ×1