小编Nem*_*emo的帖子

什么时候片段不附加到活动而只附加到上下文?

Fragment.getActivity() 的文档中,它说:Return the FragmentActivity this fragment is currently associated with. May return null if the fragment is associated with a Context instead.

但是片段怎么能不与活动相关联呢?我的意思是,我不是总是需要一个活动来在 Android 中显示任何内容吗?

android android-fragments

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

如何在 GeckoView 中禁用 WebRTC

使用GeckoView时,是否可以禁用WebRTC?以编程方式还是在构建时(例如在build.gradle)?

语境:

我们正在构建一个 Android 应用程序,我们希望在 Web 视图中运行无需互联网访问的迷你 Web 应用程序。使用系统 webview 时,无法限制互联网访问,因为webapp 始终可以使用 WebRTC 来规避互联网限制

因此,我们正在考虑切换到 GeckoView,但不确定这是否有帮助。

研究:

在 Firefox 中,似乎可以使用 about:config 禁用 WebRTC,但在GeckoView 的 API中,我既找不到设置about:config首选项的方法,也找不到直接禁用 WebRTC 的 API。

对于正常的互联网请求,似乎可以阻止它们

android webrtc geckoview

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

重复一些事情直到成功,但最多3次

自编程Java以来​​,我需要多次编程这样的事情:

做一些可能失败的事情.如果失败,请再试一次,但最多3次(或2次或5次).

这种方法应该有效:

for (int i = 0; i < 3; i++) {
    try {
        doSomething();
    } catch(BadException e) {
        continue;
    }
    break;
}
Run Code Online (Sandbox Code Playgroud)

但我不认为这是非常富有表现力的.你有更好的解决方案吗?

像这样的东西会很好:

try (maxTimes = 3) {
    doSomething();
} catch(BadException e) {
    retry;
}
Run Code Online (Sandbox Code Playgroud)

要么:

try (maxTimes = 3) {
    doSomething();
    if(somethingFailed()) {
        retry;
    }
}
Run Code Online (Sandbox Code Playgroud)

但这对Java来说是不可能的.你知道一种可能的语言吗?

java

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

如何在通知之前暂停Kotlin协程

我想挂起kotlin协程,直到从外部调用方法为止,就像旧的Java object.wait()和object.notify()方法一样。我怎么做?

在这里:正确地在Kotlin中实现wait and notify是如何使用Kotlin线程(阻塞)来实现这一点的答案。在这里:暂停协程直到条件为真才是如何使用CompleteableDeferreds做到这一点的答案,但我不想每次都必须创建一个新的CompleteableDeferred实例。

我目前正在这样做:

    var nextIndex = 0

    fun handleNext(): Boolean {
        if (nextIndex < apps.size) {
            //Do the actual work on apps[nextIndex]
            nextIndex++
        }
        //only execute again if nextIndex is a valid index
        return nextIndex < apps.size
    }

    handleNext()

    // The returned function will be called multiple times, which I would like to replace with something like notify()
    return ::handleNext
Run Code Online (Sandbox Code Playgroud)

来自:https : //gitlab.com/SuperFreezZ/SuperFreezZ/blob/master/src/superfreeze/tool/android/backend/Freezer.kt#L69

kotlin kotlin-coroutines

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