Tôi đang sử dụng một Hoạt động đơn lẻ để nhận ý định từ hộp thoại tìm kiếm qua onNewIntent()
.onNewIntent() vòng đời và người nghe đã đăng ký
Điều tôi nhận thấy là onPause()
được gọi trước onNewIntent()
và sau đó gọi số onResume()
. Nhìn bề ngoài:
- hộp thoại tìm kiếm bắt đầu
- tìm kiếm ý định sa thải để hoạt động
onPause()
onNewIntent()
onResume()
Vấn đề là tôi có nghe đăng ký tại onResume()
mà có được loại bỏ trong số onPause()
, nhưng chúng là n eeded bên trong của cuộc gọi onNewIntent()
. Có cách nào tiêu chuẩn để làm cho những người nghe đó có sẵn không?
@Rodja bạn sẽ vui lòng bình luận về vấn đề này http://stackoverflow.com/questions/19092631/logout-from-the-application- android/19092683? noredirect = 1 # 19092683 cũng – Developer
Liên quan đến câu hỏi ban đầu: hãy nhớ nếu bạn di chuyển mã để xử lý tìm kiếm 'Intent' vào' onResume() ', Activity của bạn có thể sẽ cố gắng thực hiện tìm kiếm mỗi khi nó hồ sơ, có lẽ không phải là hành vi bạn muốn. –
Rodja nói: Từ quan điểm vòng đời của hoạt động, do đó cần phải gọi onPause() trước khi onNewIntent() Android không CẦN thiết kế theo cách này. Hoạt động của bạn đã trải qua vòng đời của nó để tiếp tục(). KHÔNG CẦN cho android để gọi onPause() sau đó gọi onResume() một lần nữa. Nếu ứng dụng được tiếp tục, hệ điều hành có thể chỉ cần gọi onNewIntent() và ở trạng thái tiếp tục lại. –