ViewModel.OnCleared()当应用程序进入后台时(即使Don't keep activities已启用),当我没有被调用时,我偶然发现了一个问题,但我可以看到Fragment.onDestroy()实际上正在调用它.
以下代码可能有什么问题?如何ViewModel.OnCleared()在这种情况下实际调用?
视图模型:
class ViewModelFirst(application: Application) : AndroidViewModel(application) {
companion object {
private const val TAG = "ViewModelFirst"
}
init {
Log.v(TAG, "Created")
}
override fun onCleared() {
super.onCleared()
Log.v(TAG, "onCleared")
}
}
Run Code Online (Sandbox Code Playgroud)
分段:
class FragmentFirst : Fragment() {
companion object {
private const val TAG = "FragmentFirst"
}
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
ViewModelProviders.of(this).get(ViewModelFirst::class.java)
return inflater.inflate(R.layout.fragment_first, container, false)
}
override fun onDestroy() {
super.onDestroy()
Log.v(TAG, …Run Code Online (Sandbox Code Playgroud) 有一个应用程序,其中用户入门流程以网页形式实现,并显示在嵌入式 WebView 中。该流程步骤之一是文件上传。
<input/>它是通过在网页上使用标签并通过覆盖来进一步处理它来实现的,该覆盖WebChromeClient.onShowFileChooser(..., filePathCallback: ValueCallback<Array<Uri>>?, ...)最终触发startActivityForResult(...)应该由平台文件选择器活动提供的启动(对于不同的供应商/版本可能有所不同)。
和往常一样,一切正常,直到活动被破坏:)
问题是,当文件选择器活动在应用程序活动之上启动时,最后一个活动可能会被销毁(由于系统缺乏资源、旋转等原因)。那么我们拥有的WebViewfilePathCallback也会被销毁。filePathCallback这意味着应用程序在获取所选文件的 URI(在 上)时此时不具有有效的 URI onActivityResult。
你们如何解决这个问题?
我创建了一个简单的项目来单独代表该问题,请随意查看: https: //github.com/allco/WebViewFileChooseIssue
这是一些视频:
http://www.youtube.com/watch?v=9mnd0lT9lZI
案例 #2 演示了该问题,即使选择完成,应用程序仍然显示“未选择文件”。
这是带有项目密钥文件的剪辑片段:
class MainActivity : AppCompatActivity() {
companion object {
const val REQ_CODE_CHOOSER = 1
}
val unencodedHtml = "<input type=file>"
var webViewFileChooseCallback: ValueCallback<Array<Uri>>? = null
private val webClient = object : WebViewClient() {
...
}
private val chromeClient = object : WebChromeClient() {
...
override fun onShowFileChooser(
webView: …Run Code Online (Sandbox Code Playgroud) Android Studio Dolphin 有了一个新的 logcat。它看起来很有希望,但我还没有找到任何方法来更改新的 logcat 字体大小而不更改编辑器字体大小。
在以前版本的 Android Studio 中,logcat 遵循控制台样式,可以通过“设置”->“编辑器”->“配色方案”->“控制台字体”来减小字体大小,但现在不行了。
有没有办法更改新的 logcat 字体大小而不更改编辑器字体大小?