2013-04-05 38 views
5

Làm thế nào tôi có thể ngừng toàn bộ Ứng dụng của mình theo các thuật ngữ đơn giản? (tất cả các hoạt động, dịch vụ, Chủ đề, vv chỉ đơn giản là tất cả mọi thứ) Các cuộc gọi lại vòng đời (đặc biệt là onStop()onDestroy()) nên được gọi.Dừng ứng dụng bằng cách gọi các cuộc gọi lại vòng đời

Google gợi ý giải pháp khả thi sau:

  • giết quá trình: nhưng điều này sẽ không gọi callbacks vòng đời
  • và kết thúc(); nhưng điều này chỉ dành cho một Hoạt động:

Nhưng là nó có thể truy cập vào phương pháp này từ bên ngoài như:

//Getting all activityies, how? 
//For each gotten activity 
AcitvityName.finish(); 
or via or via getParent().finish(); ? 

này không giúp tôi: Best way to quit android app?

FD

+0

bạn đang cố gắng làm gì? nút quay lại đóng ứng dụng theo tiêu chuẩn – JRowan

+0

@JRowan nope. Không có khái niệm về "đóng ứng dụng" trên android –

+0

@WebnetMobile Điều này có nghĩa là nó chỉ đơn giản là không thể? Tôi nghĩ có một số phương pháp ... – felixd

Trả lời

2
@Override 
public void onPause() {   

     if(isFinishing()){ 
//code to finish() all activitys threads etc..... 
}    

    super.onPause(); 
} 

trong onPause() bạn có thể kiểm tra isFinishing() và sau đó nếu nó kết thúc nó đi đến onDestroy() để bạn có thể thực hiện một số mã youd giống như

+0

Nhưng lần đầu tiên onStop() ist được gọi là đúng? Vậy tại sao tôi cần điều này? – felixd

+1

no onPause được gọi đầu tiên và nếu nó được quyết định rằng ứng dụng của bạn sẽ bị tắt, bạn có thể kiểm tra xem if (isFinishing()) – JRowan

1

Android không cho phép người dùng đóng ứng dụng trực tiếp. Bạn có thể giảm thiểu nó để nền hoặc trực tiếp giết chết quá trình.

Nhưng nếu bạn muốn gọi một số callbacks và phát hành bất kỳ tài nguyên khi người dùng gỡ bỏ ứng dụng của bạn từ màn hình - bạn có thể làm như sau:

Clearing hoạt động ngăn xếp trong phương pháp onDestroy (hoặc nếu bạn muốn trong onBackPressed, onHomePressed) . Nó phải gọi onDestroy phương pháp trong tất cả các hoạt động loại bỏ, do đó bạn có thể phát hành bất kỳ tài nguyên mở rộng trong phương pháp onDestroy hoạt động có liên kết trên đó.

Vì vậy, khi người dùng thoát khỏi ứng dụng của bạn - ứng dụng sẽ xóa hoạt động của anh ấy và giải phóng tất cả các tài nguyên.

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