cuốn sách gpt4 ai đã làm

android — context.getSystemService() có phải là một cuộc gọi tốn kém không?

In lại Tác giả: Taklimakan Thời gian cập nhật: 2023-11-02 08:35:48 29 4
mua khóa gpt4 Nike

bối cảnh.getSystemService() Đây có phải là một cuộc gọi đắt tiền?

tức là tôi đã xây dựng một thư viện mạng http nhỏ (tôi biết có sẵn các thư viện mạng http khác) sử dụng ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); Kiểm tra (trước khi thực hiện yêu cầu http) xem người dùng có kết nối với Internet hay không (chiến lược không nhanh).

Câu hỏi của tôi là tôi có nên chuyển đổi Trình quản lý kết nối Nó có nên được lưu dưới dạng biến thể hiện (trường lớp) của thư viện http của tôi hay nên gọi nó? ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE ); Truy xuất Trình quản lý kết nối "mới" mỗi lần trước khi tôi bắt đầu yêu cầu http? mỗi lần tôi gọi getSystemService(Context.CONNECTIVITY_SERVICE) liệu phiên bản ConnectivityManager tương tự có được trả về hay không (nói cách khác, việc lưu trữ ConnectivityManger vào trường lớp có gây ra sự cố vì thư viện http của tôi tồn tại lâu dài -> tồn tại miễn là ứng dụng đang chạy)

câu trả lời hay nhất

Câu hỏi của tôi là tôi có nên lưu ConnectivityManager làm biến thể hiện (trường lớp) của thư viện http của mình hay tôi nên gọi ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); Trình quản lý kết nối "mới"?

Tôi sẽ giữ ví dụ. Mặc dù getSystemService() Thực ra gọi cũng không đắt, nhưng tại sao lại gọi nhiều lần hơn mức cần thiết?

nói cách khác, có thể lưu trữ ConnectivityManger vào trường lớp dẫn đến các vấn đề vì thư viện http của tôi tồn tại lâu dài --> tồn tại miễn là ứng dụng chạy

Vì lý do bảo mật, vui lòngỨng dụng đơn(getApplicationContext()) được gọigetSystemService(). 通常,getSystemService() Đối tượng được trả về ghép cặp đối tượng đã tạo ra nóBối cảnh Không có gì. Đôi khi, nó tồn tại - trong Android 5.0 Trình quản lý máy ảnh mắc phải lỗ hổng này, mặc dù nó đã được sửa trong Android 5.1. Nếu thời gian tồn tại của đối tượng dịch vụ hệ thống sẽ tồn tại lâu hơn bối cảnh tôi đang sử dụng, tôi có xu hướng sử dụng getApplicationContext() để truy xuất các dịch vụ hệ thống để tránh hoang tưởng.

(Rò rỉ bộ nhớ, họ đang đến tìm tôi!)

Có phải phiên bản ConnectivityManager tương tự được trả về mỗi lần tôi gọi getSystemService(Context.CONNECTIVITY_SERVICE)

Thành thật mà nói, tôi chưa bao giờ nhìn thấy nó.

Về android - context.getSystemService() có phải là một cuộc gọi đắt tiền không? , chúng tôi đã tìm thấy một câu hỏi tương tự trên Stack Overflow: https://stackoverflow.com/questions/32417398/

29 4 0
Chứng chỉ ICP Bắc Kinh số 000000
Hợp tác quảng cáo: 1813099741@qq.com 6ren.com
Xem sitemap của VNExpress