2010-08-18 34 views
6

Tôi cần trợ giúp về xử lý thoát ứng dụng. Ứng dụng của tôi có nhiều Hoạt động nói: - EntryAct, Act1, Act2 .... Act10.Ứng dụng Android Khi thoát khỏi sự kiện

Khi người dùng nhấn phím chủ trên bất kỳ Hoạt động nào trong số này, tôi cần thực hiện một số cài đặt cờ.

Xử lý khóa chính trong mọi ứng dụng Hoạt động không thể thực hiện được! Ai đó có thể cho biết làm thế nào điều này có thể đạt được?

Không thể thay đổi bất kỳ nội dung nào trong OnPause, OnStop hoặc OnDestory của tất cả các hoạt động Act1 ... Act10. :-(

Trả lời

0

Do nó trong các onPause() phương pháp được gọi là càng sớm càng hoạt động không còn ở phía trước.

7

vấn đề của bạn có thể được giải quyết nếu bạn sử dụng một lớp ứng dụng tùy chỉnh. Nói như

public class MyApp extends android.app.Application 
{ 
} 

và bên này đặt mã của bạn mà bạn muốn được gọi là bất cứ nơi nào trong ứng dụng của bạn.

Bây giờ duy nhất bạn cần để có được những đối tượng ứng dụng trong Activity của bạn như

này
MyApp app = (MyApp) getApplication(); 
app.setUpBeforeClosingApp(); 

và bạn có thể đặt điều này bên trong mỗi onDestroy() hoạt động và từ đây xử lý mã trước khi đóng hành động có thể đạt được.

+0

Tại sao không chỉ tạo một singleton và đặt hàm setUpBeforeClosingApp trong đó? Vì chức năng này là tùy chỉnh, nên đối tượng Application cung cấp thêm gì cho một singleton tùy chỉnh? – Subby

+0

Hãy nhớ rằng OnDestroy không được bảo đảm để bắn – Bamerza

1

Trước hết chúng ta có thể phát hiện các sự kiện quan trọng về nhà ở một cách gián tiếp như trong bài viết của tôi về giết chết một ứng dụng khi chìa khóa nhà được nhấn: How to close Android application?

Ngoài ra nó có thể để xác định xem một hoạt động là hoạt động gốc trong phương thức onDestroy() của nó và sau đó gọi nó là lớp trợ giúp để thực hiện xử lý cuối cùng nếu nó là hoạt động gốc. Tốt hơn là tạo một hoạt động tùy chỉnh mà tất cả các hoạt động của bạn kế thừa, đặt logic xử lý cuối cùng trong phương thức onDestroy() của hoạt động tùy chỉnh và sau đó có tất cả các lớp con gọi super.onDestroy() trong phương thức onDestroy() của chúng. Điều này tương tự như những gì được thực hiện trong bài viết trên: How to close Android application? cũng như các bài đăng về cách tạo màn hình thiết lập khi nhấn nút menu cũng như xử lý nút tìm kiếm và nút quay lại.

Tôi hy vọng điều này sẽ hữu ích.

+0

Giải pháp tốt nhất là: moveTaskToBack (true); android.os.Process.killProcess (android.os.Process.myPid()); System.exit (1); –

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