小编Kaz*_*hen的帖子

如何在Dark Sky Forecast API中使用查询参数?(forecast.io)

我正在使用Dark Sky Forecast API来检索一些天气信息.

当我阅读官方文档时,我发现"选项"部分描述了查询参数的用法.

例如,

可以可选地通过使用查询参数来修改API请求.它将回应以下内容:

callback = [callback]:将API响应作为JSONP返回.使用此功能时请小心,因为向公众公开API密钥存在安全隐患,如果滥用,将导致API密钥重新启动.但是,如果开发个人或内部使用的应用程序,这是一种方便的方法.

units = [setting]:以默认的英制单位以外的单位返回API响应.特别是,可以进行以下设置:

  • 我们:默认,如上所述.

  • si:以SI为单位返回结果.特别是,属性现在具有以下单位:

  • ...

我知道如何通过电话获取天气信息

 https://api.forecast.io/forecast/APIKEY/LATITUDE,LONGITUDE
Run Code Online (Sandbox Code Playgroud)

但我不知道如何将查询参数与它结合起来.

有任何想法吗?


2015/10/23更新

感谢Logan Kearns,使用?参数解决了我的问题.确保查询参数为小写.

https://api.forecast.io/forecast/APIKEY/LATITUDE,LONGITUDE?lang=zh-tw&units=si
Run Code Online (Sandbox Code Playgroud)

api weather weather-api

14
推荐指数
1
解决办法
1万
查看次数

Google Play 控制台的预发布报告未启动

根据我的经验,只要我将.apk文件上传到Internal test track,预发布报告就会自动开始。我.apk几天前上传了我的文件,但预发布报告从未开始,它只显示消息:

正在进行测试;这些测试可能需要几个小时才能完成。稍后再检查。

在此处输入图片说明

正如它所指出的那样,“这些测试可能需要几个小时才能完成。” 我已经等了好几天了,无法得到结果。是否需要配置任何设置才能开始测试?

android google-play google-play-console

5
推荐指数
1
解决办法
1433
查看次数

ViewModelProvider.Factory和ViewModelProvider.NewInstanceFactory有什么区别?

我目前正在将我的项目架构从MVP转换为MVVM。当我在处理它时,我发现有些东西使我感到困惑:

ioschedScheduleViewModelFactory.kt项目中,工厂实现ViewModelProvider.Factory:

class ScheduleViewModelFactory(
    private val userEventRepository:DefaultSessionAndUserEventRepository
) : ViewModelProvider.Factory {

    @Suppress("UNCHECKED_CAST")
    override fun <T : ViewModel> create(modelClass: Class<T>): T {
        if (modelClass.isAssignableFrom(ScheduleViewModel::class.java)) {
            return ScheduleViewModel(LoadUserSessionsByDayUseCase(userEventRepository)) as T
        }
        throw IllegalArgumentException("Unknown ViewModel class")
    }
}
Run Code Online (Sandbox Code Playgroud)

codelab的DetailViewModelFactory.java Sunshine项目中,工厂扩展了ViewModelProvider.NewInstanceFactory:

public class DetailViewModelFactory extends ViewModelProvider.NewInstanceFactory {

    private final SunshineRepository mRepository;
    private final Date mDate;

    public DetailViewModelFactory(SunshineRepository repository, Date date) {
        this.mRepository = repository;
        this.mDate = date;
    }

    @Override
    public <T extends ViewModel> T create(Class<T> modelClass) { …
Run Code Online (Sandbox Code Playgroud)

android mvvm android-mvvm android-architecture-components

5
推荐指数
1
解决办法
988
查看次数

事件包装器模式是否取代了 SingleLiveEvent 的使用?

我最近在我的 Android 应用程序中采用了 MVVM。为了解决应用生命周期的底层问题,谷歌发布了LiveData。

LiveData 的使用有不同的场景,正如Jose Alcérreca 写的中篇文章所指出的,你可以使用 SingleLiveEvent 或类似事件包装器模式的东西。

我想确保SingleLiveEvent事件包装器模式,这将是在 Android MVVM 架构中与 LiveData 一起使用的最佳实践。我发现今年(2018 年)的Google I/O 应用程序没有使用SingleLiveEvent,而是使用事件包装器模式

之前我在android-architecture项目上开了一个issue,一开始我在寻求官方回复,但似乎根本没有任何评论。因此,我想听听已经使用这些东西并对其进行反思的开发人员的建议。

请分享您的宝贵经验,在此先感谢您。

android android-livedata android-architecture-lifecycle android-architecture

5
推荐指数
1
解决办法
1436
查看次数

将 Android Room 与 Kotlin 协程一起使用的正确方法是什么?

最近在学习如何使用Kotlin Coroutines的同时,看了几篇相关的文章。但其中之一让我感到困惑:Android 上的协程(第三部分):真正的工作

正如它指出的那样:

注意:Room 使用自己的调度程序在后台线程上运行查询。您的代码不应使用 withContext(Dispatchers.IO) 来调用暂停房间查询。它会使代码复杂化并使您的查询运行得更慢。

在我看到这些段落的时候似乎有道理,但是当我打开一个 Android 项目并尝试深入研究时,问题出现了,Android Studio 警告我:

挂起函数“yourMethod”只能从协程或其他挂起函数调用

我现在在这里冻结,因为文章告诉我不要使用withContext(Dispatchers.IO). 我现在想知道我应该使用withContext(Dispatchers.Main)还是使用GlobalScope.launch来运行我的查询?

android kotlin android-room kotlin-coroutines

5
推荐指数
1
解决办法
1629
查看次数

如何在 airbnb Epoxy 中分配网格跨度?

我一直在学习如何在我的项目中使用 Epoxy。我正在通过运行示例项目来学习这个库。一切都很好,直到我深入研究网格跨度设置。我发现自己对它的网格系统感到困惑。

在此处输入图片说明

正如您在示例应用程序中看到的,ViewHolders 可以分为 3 个部分。这些部分可以特别用模型表示,例如HeaderViewModel_ButtonBindingModel_CarouselModelGroup

init RecyclerView 的代码如下:

EpoxyRecyclerView recyclerView = (EpoxyRecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this, 2));
Run Code Online (Sandbox Code Playgroud)

根据官方文档:

如果使用 GridLayoutManager,这将自动将跨度计数与 EpoxyController 同步。

我发现HeaderViewModel_CarouselModelGroup正确同步了跨度,但ButtonBindingModel_不是。我一直在示例代码中搜索“跨度”或“网格”这个词,我只是不明白为什么ButtonBindingModel_可以将其跨度设置为 1。

如果我将 RecyclerView 的跨度设置从 2 更改为 3:

EpoxyRecyclerView recyclerView = (EpoxyRecyclerView) findViewById(R.id.recycler_view);
recyclerView.setLayoutManager(new GridLayoutManager(this, 3));
Run Code Online (Sandbox Code Playgroud)

在此处输入图片说明

HeaderViewModel_并且CarouselModelGroup仍然保持同步完整跨度,但跨度ButtonBindingModel_仍然为1。

我想知道是否有一种方法可以使跨度ButtonBindingModel_达到完整跨度,以及通过代码(以编程方式)或通过布局来设置HeaderViewModel_CarouselModelGroup设置特定跨度的方法。请帮我解决这个问题,我很感激。

android epoxy epoxy-modelview

1
推荐指数
1
解决办法
1875
查看次数