Trong ứng dụng của tôi, tôi muốn tệp phương tiện phát và tiếp tục phát nếu người dùng xoay màn hình (hủy Hoạt động), nhưng tôi muốn nó ngừng phát nếu người dùng chuyển sang Hoạt động khác hoặc Hoạt động khác xuất hiện điều này, họ nhấn nút quay lại, bất cứ điều gì.Làm cách nào để biết khi nào có thay đổi cấu hình xảy ra trong Froyo?
Tôi tin rằng có một API cho điều này trong Honeycomb, nhưng tôi cần một cái gì đó sẽ làm việc trong Android 2.2.
Tôi không muốn sử dụng onConfigurationChanged để xử lý tất cả các thay đổi cấu hình - âm thanh như rất nhiều công việc và các lỗi tiềm ẩn - và vấn đề với onRetainNonConfigurationInstance() là nó không chạy cho đến sau khi onStop cháy - nhưng onPause sẽ là nơi hợp lý để tạm dừng phương tiện, nếu thích hợp.
Có cách nào, trong onPause, để biết liệu Hoạt động có bị tạm dừng cho thay đổi cấu hình so với một lý do khác không?
Một ý tưởng thú vị, Julian, cảm ơn bạn vì ví dụ chi tiết. Khi tôi thêm android: configChanges = "orientation" vào Hoạt động có liên quan trong tệp kê khai, nó sẽ có hiệu lực, nhưng không như tôi mong đợi. onConfigurationChanged KHÔNG kích hoạt ... nhưng onPause/onStop/onDestroy không bao giờ được gọi. Vì vậy, đó là một cách để giải quyết vấn đề "xoay màn hình phá hủy Hoạt động" nhưng không theo cách được Google đề xuất. Cảm ơn mặc dù! –
Xem câu trả lời cập nhật. Không liên quan đến thay đổi đối với tệp kê khai và onDestroy() vẫn được gọi. –
Câu trả lời mới dường như hoạt động! OnRetainNonConfigurationInstance kích hoạt sau onStop và trước onDestroy, và với mã onDestroy chính xác này có thể cho biết liệu nó có tắt hay không để thay đổi cấu hình hay không. Cảm ơn! –