Tôi muốn biết khi nào ứng dụng bị đóng, vì tôi cần xóa Cơ sở dữ liệu khi người dùng tắt ứng dụng, chỉ trong thời điểm người dùng đóng ứng dụng là đúng thời điểm để xóa SQLite Cơ sở dữ liệu, làm thế nào tôi có thể phát hiện điều này?phát hiện khi ứng dụng được đóng
Trả lời
Giả sử bạn không finish()
hoạt động chính của bạn, xóa cơ sở dữ liệu bên trong phương thức onDestroy()
của hoạt động đó có thể là gần nhất với những gì bạn muốn thực hiện. Như đã được chỉ ra trong các ý kiến, tham khảo http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle.
onDestroy() dường như không hoạt động ở lần nào, android chỉ bỏ qua thực hiện phương thức onDestry(). – San
Sử dụng 'onPause()' được khuyến khích, vì 'onDestroy()' thực hiện không đáng tin cậy 100% (nó dựa trên tài nguyên hệ thống) –
Đây là một ý tưởng thiết kế sai lầm, phản ánh sự hiểu lầm của hệ thống - khi quá trình tổng thể chết, nó đã chết, có nghĩa là mã của bạn không còn chạy nữa.
Bạn có thể thực hiện theo dõi và thực hiện hoạt động dọn dẹp lần cuối, nhưng đừng cho rằng nó sẽ luôn thực sự xảy ra (phương pháp không phải là luôn gọi là). Nếu có một bản sao cũ là một vấn đề, hãy làm sạch nó trong lần chạy tiếp theo.
Điều đó nói rằng, bạn có thể thử sử dụng ndk để cung cấp một trình xử lý cho các tín hiệu chấm dứt quá trình, nhưng tôi vẫn không tính vào nó hoạt động trong mọi trường hợp. Tiềm năng hạn chế để đạt được bất kỳ chức năng âm thanh nào từ điều này có lẽ sẽ không biện minh cho nỗ lực trừ khi bạn đã quen thuộc với các khái niệm liên quan.
Và đừng để lỗi trong một phút làm sạch cơ chế bảo mật vì tệp ở đó trong khi ứng dụng của bạn đang chạy và sẽ vẫn còn nếu ứng dụng của bạn bị chấm dứt theo cách bất ngờ.
"Nếu có một bản sao cũ là một vấn đề, hãy làm sạch nó trong lần chạy tiếp theo." - cảm ơn, đề xuất tốt – Nactus
- 1. Tôi có thể phát hiện khi một Chủ đề nền bị giết bởi ứng dụng khi ứng dụng đóng không?
- 2. Phát hiện khi ứng dụng bảng điều khiển đóng/bị giết?
- 3. phát hiện nếu tất cả các tab của ứng dụng được đóng
- 4. Phát hiện ứng dụng treo
- 5. Giữ cho bộ thu phát sóng chạy sau khi ứng dụng được đóng
- 6. Android: Lưu trạng thái dụ khi ứng dụng được đóng
- 7. Cách đóng ứng dụng JavaFX khi đóng cửa sổ?
- 8. Cách đóng ứng dụng trước khi được nạp đầy đủ?
- 9. Phát hiện ứng dụng email
- 10. Phát hiện khi ứng dụng ASP.NET tái chế
- 11. Phát hiện đóng HTTP bằng cách sử dụng inet
- 12. Phát hiện xem ứng dụng đã được gỡ cài đặt
- 13. NIO - Phát hiện kết nối đã đóng
- 14. RaceOnRCWCleanup khi đóng các ứng dụng WPF
- 15. Phát hiện khi biểu mẫu đã bị đóng C#
- 16. Ruby: Cách phát hiện khi một bên của ổ cắm đã được đóng
- 17. WiX đóng ứng dụng trước khi gỡ cài đặt - đóng ứng dụng đang mở tin nhắn
- 18. Phát hiện một ứng dụng được cài đặt hay chưa?
- 19. Cách phát hiện sự kiện đóng cửa sổ trong ứng dụng AIR và cách ngăn chặn
- 20. Javascript: Phát hiện khi hộp cảnh báo được OK'ed và/hoặc đóng
- 21. Cách phát hiện trình đóng gói PE được sử dụng trên exe đã cho là gì?
- 22. 'fileSystem' chỉ được phép cho các ứng dụng đóng gói và đây là ứng dụng được đóng gói cũ
- 23. Đóng các ứng dụng
- 24. Đóng ứng dụng khi internet không khả dụng
- 25. Phát hiện Vista Starter giới hạn ba ứng dụng mở
- 26. Hỏi người dùng trước khi đóng ứng dụng C# WPF
- 27. Ứng dụng buộc đóng khi tắt hệ thống
- 28. cách phát hiện sự kiện Đóng trang với ASP.NET
- 29. Phát hiện khi màn hình mới được kết nối
- 30. phát hiện trang đóng (hoặc dỡ) trong asp.net mvc3
** Đọc tài liệu: ** http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle –
Vâng, tôi biết điều này, nhưng câu hỏi là, tôi cần biết khi nào tổng số đơn đăng ký bị đóng, không khi nào một hoạt động được đóng lại. – JLouis
Điều bạn muốn là không thể. Quá trình của bạn có thể bị chấm dứt bất kỳ lúc nào, bởi người dùng hoặc hệ điều hành và bạn không được thông báo về điều này. – CommonsWare