Trang Chủ Xã hội Truyền thông Cách Sử dụng Lớp AsyncTask trong Ứng dụng Android của bạn - núm vú

Cách Sử dụng Lớp AsyncTask trong Ứng dụng Android của bạn - núm vú

Mục lục:

Video: Lập trình Android (Kotlin) - Bài 24: Xử lý AsyncTask 2025

Video: Lập trình Android (Kotlin) - Bài 24: Xử lý AsyncTask 2025
Anonim

Một AsyncTask là những gì bạn sử dụng khi một cái gì đó mất quá nhiều thời gian trong quá trình chạy ứng dụng Android của bạn. Ví dụ: người dùng yêu cầu một trang web. Ai biết phải mất bao lâu để tìm nạp trang? Dịch vụ lưu trữ trang web có thể đang có khối lượng lớn. Hoặc người dùng có thể đang trên một chuyến tàu đi qua một đường hầm.

Tất cả các loại sự kiện có thể làm chậm việc truy xuất trang. Và trong quá trình tìm kiếm này, người dùng có thể muốn nhấp vào các nút, cuộn một tài liệu, hoặc làm cái gì đó khác đòi hỏi phản hồi từ ứng dụng của bạn.

Bạn không thể dừng chương trình trong khi ứng dụng của bạn đợi một trang web, tìm kiếm thời gian Twitter hoặc cập nhật trạng thái Twitter của người dùng. Đó là lý do tại sao bạn mã yêu cầu mạng bên trong một AsyncTask.

AsyncTask của Android rất đa năng để xử lý tất cả các loại giá trị. Trên thực tế, tài liệu hướng dẫn xác định AsyncTask theo cách này:

Android. os. AsyncTask

Định nghĩa có ba trình giữ chỗ kiểu chung - Params, Progress và Result. Khi bạn tạo AsyncTask của riêng bạn, bạn "điền vào khoảng trắng" bằng cách chỉ định các loại thực tế thay cho Params, Progress và Result.

Gửi một tweet mới

Để thêm một tweet thay mặt cho người dùng, bạn lấy một đối tượng Twitter (ví dụ bạn đã làm với factory getInstance ()), và bạn gọi instance của updateStatus phương pháp. Bạn không muốn yêu cầu mạng này ngắt dòng chảy của hoạt động chính của bạn, vì vậy bạn đặt yêu cầu bên trong một AsyncTask. Tên tác vụ là MyAsyncTaskTweet. Ba loại chung chung của nhiệm vụ như sau: Chuỗi, Void, và Chuỗi:

Chuỗi , Void , Chuỗi >> ( Loại đầu tiên (String) đại diện một tweet 140 ký tự. Chứa một chuỗi các ký tự từ một trong các trường văn bản của hoạt động và chuyển chuỗi đó đến MyAsyncTaskTweet.
  • Đoạn mã

    execute (editTextTweet. GetText ().toString () Bên trong MyAsyncTaskTweet, phương pháp doInBackground gọi chuỗi đó tweet [0] và sử dụng chuỗi tweet [0] để cập nhật trạng thái của người dùng.

    Tham số cho phương pháp updateStatus là một phần tử mảng. Đó là bởi vì, trong phần đầu của phương thức doInBackground, tweet là một tham số varargs. Từ varargs có nghĩa là "số lượng các đối số thay đổi. "Bạn có thể vượt qua càng nhiều giá trị để làmInBackground theo ý muốn. Trong phần thân của phương pháp, bạn coi tweet như thể đó là một mảng thông thường. Giá trị tweet đầu tiên là tweet [0]. Nếu có một giá trị tweet thứ hai, nó sẽ là tweet [1], vân vân.
    

    Kiểu thứ hai (Void) là viết tắt của một giá trị (hoặc giá trị) đánh dấu sự tiến bộ của chủ đề nền trong việc hoàn thành công việc của nó.

    Vì không có chỉ báo tiến trình, tên loại thứ hai là Void.

  • Trong Java, lớp Void là lớp wrapper cho giá trị void. Đặt nó vào lỗ đen của bạn của hư không!

    Loại thứ ba (String) là viết tắt của cụm từ như

    Thành công!

  • hoặc Không thể tweet . Phương pháp doInBackground tìm chuỗi kết hợp với chuỗi R. thành công, chuỗi R. twitter_failure, hoặc chuỗi R. general_failure và trả về chuỗi này như là kết quả của nó. Sau đó, phương pháp onPostExecute sẽ hiển thị chuỗi này trong trường editTextTweet của màn hình. Hình ảnh này tóm tắt cách tên kiểu chung chung ảnh hưởng đến các loại phương thức.

    Việc sử dụng các loại trong MyAsyncTaskTweet.

Hình dưới đây tóm tắt cách các giá trị di chuyển từ nơi này đến nơi khác trong MyAsyncTaskTweet.

Dòng các giá trị trong MyAsyncTaskTweet.

Lấy dòng thời gian của người dùng

Nếu bạn đã nhìn thấy một AsyncTask, bạn đã nhìn thấy tất cả! Lớp MyAsyncTaskTimeline hầu như giống với MyAsyncTaskTweet. Sự khác biệt duy nhất là như sau:

Trong MyAsyncTaskTweet, tham số được truyền vào doInBackground được coi là một tweet. Nhưng trong MyAsyncTaskTimeline, tham số được gửi qua doInBackground là một tên người dùng. Mã chuyển tên người dùng này đến phương thức getUserTimeline.

Trong MyAsyncTaskTweet, giá trị được trả về từ doInBackground là một thông báo thành công hoặc thất bại. Nhưng trong MyAsyncTaskTimeline, giá trị được trả về từ doInBackground là một chuỗi đầy tweets (một dòng thời gian).

  • Đoạn mã lấy thời gian của người dùng trông giống như sau:

  • List statuses = null; statuses = twitter. getUserTimeline (tên người dùng [0]);

Một người tên Yusuke Yamamoto đã phát triển Twitter4J (hoặc ít nhất, Yusuke Yamamoto là trưởng dự án của Twitter4J) và vào một thời điểm nào đó, ông Yamamoto đã quyết định rằng phương thức getUserTimeline trả về một bộ sưu tập của twitter4J. Đối tượng trạng thái. (Mỗi ví dụ tình huống twitter4J.tìm một tweet) Vì vậy, để tôn vinh hợp đồng được đặt bằng cách gọi phương thức getUserTimeline, mã tuyên bố các trạng thái là một bộ sưu tập của twitter4J. Đối tượng trạng thái.

Một vài dòng sau đó trong mã, câu lệnh nâng cao cho bước qua tập hợp các giá trị trạng thái và nối văn bản của mỗi giá trị vào một chuỗi kết quả lớn. Vòng lặp thêm "n" (ký tự đi tới dòng tiếp theo của Java) sau mỗi lần tweet để đo tốt. Trong phương pháp onPostExecute, mã hiển thị chuỗi kết quả lớn trong trường textViewTimeline của màn hình.

Trong phương pháp doInBackground thứ hai, tên đầy đủ của twitter4j. Trạng thái được sử dụng. Điều này được thực hiện để phân biệt twitter4J. Lớp trạng thái từ AsyncTask của Android. Trạng thái lớp (một lớp bên trong của lớp AsyncTask).

Một AsyncTask có thể khá phức tạp. Nhưng khi bạn so sánh AsyncTask của Android với các lựa chọn thay thế luồng bằng tay, thì ý tưởng của AsyncTask không hề tồi. Trên thực tế, khi bạn thực hành một ít và tạo ra một số lớp học AsyncTask của riêng bạn, bạn thường quen suy nghĩ theo cách đó. Toàn bộ doanh nghiệp bắt đầu cảm thấy khá tự nhiên.

Cách Sử dụng Lớp AsyncTask trong Ứng dụng Android của bạn - núm vú

Lựa chọn của người biên tập

Bạn nên biết gì về ngày chia cổ tức cho kỳ thi loại 7 - núm vú

Bạn nên biết gì về ngày chia cổ tức cho kỳ thi loại 7 - núm vú

Khi khách hàng đang mua chứng khoán của một công ty đang trong quá trình tuyên bố hoặc trả cổ tức, bạn cần phải có khả năng nói cho khách hàng biết họ có quyền nhận cổ tức hay không. Do giao dịch chứng khoán giải quyết trong ba ngày làm việc, khách hàng được hưởng cổ tức nếu mua chứng khoán tại <

Giải toán Các vấn đề về Từ Toán trên ACT - núm vú

Giải toán Các vấn đề về Từ Toán trên ACT - núm vú

Một vấn đề về chữ (còn gọi là vấn đề về câu chuyện vấn đề trong một thiết lập) cung cấp cho bạn thông tin bằng các từ chứ không chỉ trong phương trình và số. Để trả lời một vấn đề từ toán học trên ACT, bạn phải dịch các thông tin được cung cấp thành một hoặc nhiều phương trình và sau đó giải quyết. Bạn có thể giải quyết một số từ ...

Giải quyết sự tương đồng Tough MAT bằng cách xem xét các phần của bài phát biểu - những núm vú

Giải quyết sự tương đồng Tough MAT bằng cách xem xét các phần của bài phát biểu - những núm vú

Giải thích sự tương tự trên Miller Analogies Test (MAT) là khó khăn, nhưng nếu bạn có một kế hoạch, nó có thể giúp đỡ. Một phương pháp tấn công một phép so sánh phức tạp của MAT là kiểm tra các phần của bài phát biểu cho mỗi thuật ngữ. Bằng cách hiểu biết các phần của bài phát biểu liên quan, bạn có thể làm sáng tỏ một sự tương tự gây nhầm lẫn. ...

Lựa chọn của người biên tập

Thiết kế một Ảnh Cắt dán cho Blog của bạn với PicMonkey - những hình núm vú

Thiết kế một Ảnh Cắt dán cho Blog của bạn với PicMonkey - những hình núm vú

Trên blog, ảnh cắt dán cho phép bạn trình bày nhiều hình ảnh hơn trong một không gian nhỏ hơn so với khi bạn chèn những bức ảnh này vào bài đăng trên blog. Ảnh ghép ảnh cũng có thể làm cho nhìn vào nhiều hình ảnh hấp dẫn hơn, cho dù đó là trong bài viết blog của bạn hoặc ở nơi nào khác trong thiết kế blog của bạn.

Thiết kế một Trang Quảng cáo hiệu quả cho Blog của bạn - những con cần

Thiết kế một Trang Quảng cáo hiệu quả cho Blog của bạn - những con cần

Nếu bạn muốn kiếm tiền từ blog của bạn thông qua quảng cáo hoặc làm việc với các công ty, sau đó có một trang quảng cáo như một phần của thiết kế blog của bạn là phải. Nếu blog của bạn không có trang Quảng cáo, đại diện công ty sẽ không biết bạn có tiềm năng quan tâm đến việc làm việc với họ trong các dự án chung. Tất nhiên, ...

Thiết kế Blog của bạn Yourself - núm vú

Thiết kế Blog của bạn Yourself - núm vú

Nếu bạn có một niềm đam mê để học những điều mới và không nhớ thử nghiệm, hãy thử tự thiết kế blog của bạn. Tất nhiên, lập luận của bạn có thể ít mạo hiểm hơn - nói rằng, bạn có thể không có tiền để thanh toán cho ai đó để thiết kế blog của bạn. Bất kể lý do, việc thiết kế blog của riêng bạn có thể được khen thưởng! ...

Lựa chọn của người biên tập

Làm thế nào để Căn chỉnh Excel 2010 dữ liệu theo chiều ngang và chiều dọc - núm vú

Làm thế nào để Căn chỉnh Excel 2010 dữ liệu theo chiều ngang và chiều dọc - núm vú

Trong Excel 2010, bạn có thể thay đổi sắp xếp ngang và dọc của dữ liệu ô. Theo mặc định, văn bản được căn lề trái, và giá trị và ngày được canh phải. Sử dụng các nút trong nhóm Alignment của tab Trang chủ để thay đổi sắp xếp. Các giá trị được định dạng dưới dạng Kế toán chỉ có thể hiển thị là liên kết phải. Bạn có thể thay đổi sắp xếp tất cả ...

Làm thế nào để Căn chỉnh nhiều đối tượng đồ họa trong Excel 2010 - núm vú

Làm thế nào để Căn chỉnh nhiều đối tượng đồ họa trong Excel 2010 - núm vú

Khi bạn làm việc với nhiều đối tượng hoặc hình dạng trong Excel 2010, bạn có thể cần căn chỉnh các đối tượng theo những cách nhất định để cải thiện sự xuất hiện của họ trong bảng tính. Excel cung cấp một số tuỳ chọn căn chỉnh thông qua menu Align trên tab Định dạng Công cụ Vẽ. Thực hiện theo các bước sau để căn chỉnh các đối tượng đồ họa trong một bảng tính: Chọn <...

Cách áp dụng một kiểu bảng cho một bảng Excel 2010 - núm vú

Cách áp dụng một kiểu bảng cho một bảng Excel 2010 - núm vú

Trong Excel 2010, bạn có thể áp dụng một định dạng bảng được xác định trước cho một phạm vi ô. Tính năng Định dạng Bảng làm hiển thị một bộ sưu tập Thư viện mở rộng với định dạng hình thu nhỏ được chia thành ba phần - Ánh sáng, Trung bình và Đậm - mỗi màu đều mô tả cường độ màu được sử dụng theo các định dạng khác nhau.