Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/220.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 为什么WebView比TextView快得多_Android_Performance_Webview_Textview - Fatal编程技术网

Android 为什么WebView比TextView快得多

Android 为什么WebView比TextView快得多,android,performance,webview,textview,Android,Performance,Webview,Textview,我有一个活动应该显示一个文本文件。文本文件为165 kB。原来我读了这个文本文件之后,我会这样做 textView.setText(fileText); 但是在我的Nexus4上,这花费了超过10秒的时间,我确认这是由于调用了setText()而没有读取文件造成的。然后,在搜索了一段时间后,我想到了使用webview.loadData()将它放在一个webview中。这不到一秒钟 我很好奇为什么WebView能够比TextView更快地加载文本。有人知道吗?根据我的记忆 WebView只呈现在

我有一个活动应该显示一个文本文件。文本文件为165 kB。原来我读了这个文本文件之后,我会这样做

textView.setText(fileText);
但是在我的Nexus4上,这花费了超过10秒的时间,我确认这是由于调用了
setText()
而没有读取文件造成的。然后,在搜索了一段时间后,我想到了使用
webview.loadData()
将它放在一个webview中。这不到一秒钟

我很好奇为什么WebView能够比TextView更快地加载文本。有人知道吗?

根据我的记忆


WebView只呈现在任何给定时间需要显示的文本。这意味着当你第一次加载时,它只会加载20-30行文本。而当您调用
textView.setText(fileText)时它使Android渲染所有文本,即使文本未显示。如果您试图向TextView添加大量文本,则应使用
TextView.append(fileLine)在一个循环中,加载速度应该会快一点。

这是一个大的文本文件吗?@hichris123,OP said 165KB@CoreyOgburn我不确定这对文字(比如单词)意味着什么。这意味着(我假设utf-8)有165K个字母。还有什么?你是怎么测量的?WebView可能会在背景中进行一些布局,以便最初只显示文本的开头。