小编Rai*_*ker的帖子

Android中的Realm VS Room

我正在构建一个应用程序,我需要在其中使用数据库.我正在考虑使用Room,因为它现在是新的和热门的.但我也听说过很多关于Realm的好东西.有人能指出使用每种产品的可能优势吗?

我做了我的研究并阅读了文档,但我没有经验可以自己理解

房间文件

领域文档

android realm android-room

52
推荐指数
2
解决办法
2万
查看次数

java.net.SocketTimeoutException:timeout

随着OkHttp图书馆,应用程序面临以下SocketTimeoutException问题.如果请求大小较小,那么它工作正常(小于1MB).我在10秒内收到此异常,即使我的socket timeout(readTimeout)值更高.它总是失败的请求(大小是1.8MB).当我执行请求时HttpUrlConnection它工作正常.什么可能是失败的原因?

   03-29 12:16:38.997 32066-4018/com.mobile W/System.err: java.net.SocketTimeoutException: timeout
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err:     at okio.Okio$3.newTimeoutException(Okio.java:207)
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err:     at okio.AsyncTimeout.exit(AsyncTimeout.java:261)
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err:     at okio.AsyncTimeout$1.write(AsyncTimeout.java:158)
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err:     at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:176)
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err:     at okio.RealBufferedSink.write(RealBufferedSink.java:46)
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err:     at okhttp3.internal.http.Http1xStream$FixedLengthSink.write(Http1xStream.java:286)
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err:     at okio.RealBufferedSink.emitCompleteSegments(RealBufferedSink.java:176)
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err:     at okio.RealBufferedSink.write(RealBufferedSink.java:96)
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err:     at okhttp3.RequestBody$2.writeTo(RequestBody.java:96)
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err:     at okhttp3.internal.http.HttpEngine$NetworkInterceptorChain.proceed(HttpEngine.java:704)
    03-29 12:16:38.997 32066-4018/com.mobile W/System.err: …
Run Code Online (Sandbox Code Playgroud)

java android httpurlconnection okhttp3

33
推荐指数
5
解决办法
5万
查看次数

Jetpack Compose Textfield OnFocusChangeListener

我有一个标准的文本字段,我想知道用户何时在其中设置焦点。有没有办法做到这一点?

我尝试设置可点击修饰符以在有人单击它时触发事件,但看起来它不适用于 TextField:

modifier = Modifier
            .clickable {
                shouldShowSearchKeyBoard.value = true
            },
Run Code Online (Sandbox Code Playgroud)

android kotlin android-jetpack-compose

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

安卓。深层链接不适用于 http/https 方案

我通过这种方式添加了一个到我的 Android 应用程序的深层链接:

<activity
        android:name=".views.DeepLinkingActivity"
        android:exported="true">
        <intent-filter android:autoVerify="true">
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />

            <data
                android:scheme="https"
                android:host="example.com"/>
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

当我点击https://example.com我被重定向到网站。

当我更改它时android:scheme="https"android:scheme="appscheme"它会工作并将我重定向到我的应用程序。

如何强制通过https方案打开我的应用程序?

更新

我添加了一个子域,但它仍然不起作用。

<activity
        android:name=".views.DeepLinkActivity"
        android:exported="true">
        <intent-filter>
            <action android:name="android.intent.action.VIEW" />
            <category android:name="android.intent.category.DEFAULT" />
            <category android:name="android.intent.category.BROWSABLE" />
            <data
                android:scheme="https"
                android:host="www.example.ru"/>
        </intent-filter>
    </activity>
Run Code Online (Sandbox Code Playgroud)

android deep-linking

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

滑动时减慢motionLayout动画

我有motionLayout动画transition

<Transition
        app:constraintSetEnd="@+id/end"
        app:constraintSetStart="@+id/start">
        <OnSwipe
            app:dragDirection="dragUp"
            app:dragScale="0.1"
            app:touchAnchorId="@id/my_scrollview" />
</Transition>
Run Code Online (Sandbox Code Playgroud)

但是动画对我来说太快了。我想慢下来。我尝试设置,dragScale=0.1, maxAcceleration=1, maxVelocity=1但它不会影响动画速度。我怎样才能让它慢下来?

更新:问题已在较新版本中修复,constraintlayout并且似乎正在处理中"2.0.4"

android android-motionlayout

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

带有导航组件的滑动动画

我正在使用 JetPack 导航组件在片段之间导航。我在图表 xml 中的 2 个片段之间添加了幻灯片动画:

<action
    android:id="@+id/action_Fragment_to_DetailsFragment"
    app:enterAnim="@anim/slide_left"
    app:popEnterAnim="@anim/slide_right"
    app:destination="@id/DetailsFragment" />
Run Code Online (Sandbox Code Playgroud)

问题是 - b/c 我正在使用导航组件,它使用fragmentManager.replace(), 而不是fragmentManager.add(), 而不是平滑动画,我看到:

  1. 第一个片段消失了

  2. 正在触发第二个片段的动画并将新片段滑动到屏幕

  3. 第二个片段出现在屏幕上。

并且 b/c 我在两个屏幕上都有不同的内容,它看起来有问题。我想要实现的是“就像在 IOS 中一样”,用户看到 2 层屏幕,彼此滑动。有没有办法用不支持“ fragmentManager.add()”的导航组件来实现它?

我也试过

app:enterAnim="@anim/slide_in_right"
app:exitAnim="@anim/slide_out_left"
app:popEnterAnim="@anim/slide_in_left"
app:popExitAnim="@anim/slide_out_right"
Run Code Online (Sandbox Code Playgroud)

但情况也好不到哪里去。

android android-animation android-fragments android-navigation

8
推荐指数
2
解决办法
6344
查看次数

android改造主机名未验证

我获得了为 IP 地址(不是通用名称)颁发的证书,我正在尝试使用该证书连接到服务器。

OkHttpClient.Builder builder = new OkHttpClient().newBuilder();
OkHttpClient okHttpClient = builder.build();
Gson gson = new GsonBuilder()
                .setLenient()
                .create();
retrofit = new Retrofit.Builder()
                .baseUrl(url)
                .client(okHttpClient)
                .addConverterFactory(GsonConverterFactory.create(gson))
                .build();
ServerRouts service = retrofit.create(ServerRouts.class);
Resp_json> call = service.login(param, user, pw);
Run Code Online (Sandbox Code Playgroud)

我得到了一个错误:

Hostname 11.8.222.333 not verified:
Run Code Online (Sandbox Code Playgroud)

但是当我使用

builder.hostnameVerifier(new HostnameVerifier() {
                @Override
                public boolean verify(String hostname, SSLSession session) {
                    return true;
                }
            });
Run Code Online (Sandbox Code Playgroud)

然后一切正常。

如何在不关闭主机名验证程序的情况下解决该错误?

PS 我为 IP 颁发的证书 (11.8.222.333)

android ssl-certificate retrofit2

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

RXJava2.我是否需要一次发出的处理流?(单身,也许)

我的代码中有很多Single,比如

Disposable disp = Single.fromCallable(()-> loadData())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribeOn(Schedulers.io())
            .subscribe(res-> showInUI(res),
                    throwable -> Log.e(TAG, throwable.getMessage()))
            );
Run Code Online (Sandbox Code Playgroud)

当我从资料了解,之间的差别Observable,并Single是单可以响应错误,决不响应,有成功的回答它发射只有一次.现在我没有在任何地方处置,一切正常.

所以我需要执行disp.dispose()吗?

java rx-java rx-java2

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

在Kotlin重复n次

我想创建一个string包含*符号n时间的内容.我只看到这种方式:

val s = ""
val n = 100
for (j in 0 until n) {
    s += "*"
}
Run Code Online (Sandbox Code Playgroud)

但它看起来很丑陋,而且时间复杂度为O(n ^ 2).Kotlin有没有办法在没有时间复杂度更高的循环的情况下做到这一点?

kotlin

6
推荐指数
2
解决办法
2902
查看次数

为什么我们需要python中的协同程序?

我很久以前就听说过惯例,但从未使用它们.据我所知,协同例程类似于生成器.

为什么我们需要Python中的协同例程?

python coroutine

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