gpt4 book ai didi

android - 剪贴板中的 null

转载 作者:行者123 更新时间:2023-12-04 23:56:12 24 4
gpt4 key购买 nike

我需要从剪贴板中获取复制的数据。我使用这段代码:

val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clipData: ClipData? = clipboardManager.primaryClip
clipData?.let { textView.text = clipData.getItemAt(0).text }

如果我在 onCreate()onResume() 回调中使用此代码,我总是从剪贴板中获取 null。

但是如果我调用这段代码:

textView.post {
val clipboardManager = getSystemService(CLIPBOARD_SERVICE) as ClipboardManager
val clipData: ClipData? = clipboardManager.primaryClip
clipData?.let { textView.text = clipData.getItemAt(0).text }
}

我得到复制的字符串。

所以,我得出结论,剪贴板会一直等到所有 View 都呈现完。

为什么剪贴板需要等待渲染所有 View ?或者剪贴板可能正在等待其他东西

最佳答案

发生这种情况是因为当您尝试从剪贴板获取 primaryClip 时,您的应用应该处于焦点状态。

所有 View 都必须设置并绑定(bind)到 Activity ,这就是为什么您必须借助 view.post { }

将您的函数添加到 UI 队列

该更改已添加到 API 29 👇🏻 https://developer.android.com/about/versions/10/privacy/changes#clipboard-data

关于android - 剪贴板中的 null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65465361/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com