2011-08-06 34 views
17

Có một cuộc gọi lại luôn được gọi sau khi onResume() không? Tôi cần điều đó, vì AFAIK, sau khi onResume(), mọi Chế độ xem trong bố cục đã được hiển thị, vì vậy tôi có thể đo kích thước của chúng.Android - có một cuộc gọi lại được gọi ngay sau khi onResume() không?

Cảm ơn.

+1

Ahhh, ở đây chúng tôi đi: ViewTreeObserver có lẽ là đúng cách để làm điều này: http://stackoverflow.com/a/7735122/338479 –

Trả lời

25

Activity | Android Developers

protected void onPostResume() 

Từ: API Level 1

Được gọi là khi hoạt động tiếp tục được hoàn tất (sau onResume() đã được gọi). Các ứng dụng thường sẽ không thực hiện phương pháp này; nó được thiết kế cho các lớp hệ thống để thực hiện thiết lập cuối cùng sau khi ứng dụng tiếp tục mã đã chạy.

Các lớp có nguồn gốc phải gọi đến việc triển khai phương pháp này của lớp học siêu hạng. Nếu không, ngoại lệ sẽ bị ném.


Bạn cũng có thể quan tâm (trong liên kết giống nhau):

public void onWindowFocusChanged (boolean hasFocus) 

Từ: API Level 1

gọi khi Window hiện tại của lợi nhuận hoạt động hoặc mất tập trung. Đây là chỉ báo tốt nhất về việc liệu hoạt động này có hiển thị với người dùng hay không. Việc triển khai mặc định sẽ xóa trạng thái theo dõi khóa, vì vậy sẽ luôn được gọi.

Lưu ý rằng điều này cung cấp thông tin về trạng thái lấy nét toàn cầu, được quản lý độc lập với vòng đời hoạt động. Như vậy, trong khi các thay đổi tiêu điểm sẽ có một số liên quan đến các thay đổi vòng đời (một hoạt động bị ngừng sẽ không lấy tiêu điểm cửa sổ), bạn không nên dựa vào bất kỳ thứ tự cụ thể nào giữa các cuộc gọi lại ở đây và các phương thức khác trong vòng đời như onResume(). Tuy nhiên, theo mặc định, một hoạt động được tiếp tục sẽ có tiêu điểm cửa sổ ... trừ khi nó đã hiển thị các hộp thoại hoặc cửa sổ bật lên khác lấy tiêu điểm đầu vào, trong trường hợp đó hoạt động sẽ không tập trung khi các cửa sổ khác có tiêu điểm . Tương tự như vậy, hệ thống có thể hiển thị các cửa sổ cấp hệ thống (chẳng hạn như bảng thông báo thanh trạng thái hoặc cảnh báo hệ thống) sẽ tạm thời lấy tiêu điểm cửa sổ mà không tạm dừng hoạt động nền trước.

thông số

hasFocus Whether the window of this activity has focus. 
+2

Cảm ơn, các onWindowFocusChanged đã làm các trick. Dường như mọi thứ vẫn không thể đo được ngay cả trong onPostResume() ... –

+1

Điều tôi muốn * thực sự * thích là gọi lại sau khi bố cục nhưng trước khi hiển thị. –

+2

@EdwardFalk: ViewTreeObserver.addOnGlobalLayoutListener() –

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