2013-11-26 24 views
5

Tôi có một hoạt động được cho là hiển thị tệp văn bản. Tệp văn bản là 165 kB. Ban đầu, sau khi tôi đọc trong file văn bản, tôi sẽ làm một cái gì đó như thế này,Tại sao WebView lại nhanh hơn nhiều so với TextView

textView.setText(fileText); 

Nhưng đó mất hơn 10 giây trên Nexus của tôi 4, và tôi khẳng định rằng đây là do các cuộc gọi đến setText() và không đọc tập tin. Sau đó, sau khi tìm kiếm xung quanh một chút, tôi đã có ý tưởng để đặt nó trong một webview, sử dụng WebView.loadData(). Việc này mất chưa đầy một giây.

Tôi tò mò là tại sao WebView có thể tải văn bản nhanh hơn nhiều so với TextView. Có ai biết không?

+0

Đây có phải là tệp văn bản lớn không? – hichris123

+1

@ hichris123, OP cho biết 165 KB –

+0

@CoreyOgburn Không chắc chắn điều đó có nghĩa là gì về văn bản, như từ ngữ. – hichris123

Trả lời

2

Từ những gì tôi nhớ;

WebView sẽ chỉ hiển thị văn bản cần hiển thị bất kỳ lúc nào. Có nghĩa là khi bạn tải lần đầu tiên nó sẽ chỉ tải 20 - 30 dòng văn bản. Trong khi khi bạn gọi textView.setText(fileText); nó làm cho Android hiển thị tất cả văn bản mặc dù nó không được hiển thị. Nếu bạn đang cố gắng thêm rất nhiều văn bản vào một TextView thì bạn nên sử dụng textView.append(fileLine); trong một vòng lặp sẽ tải nhanh hơn một chút.

Các vấn đề liên quan