Tôi có một ứng dụng Android bao gồm hoạt động và dịch vụ. Hiện tại cả hai đều tồn tại trong cùng một quá trình và sử dụng cùng một đống nhưng tôi muốn phải tách riêng quá trình/heap cho dịch vụ. I E. Tôi muốn dịch vụ hoàn toàn độc lập với hoạt động để nếu hoạt động bị treo, nó sẽ không ảnh hưởng đến dịch vụ. Tuy nhiên, tôi muốn chúng có thể cài đặt như một ứng dụng đơn lẻ. Điều này có thể không?Cách tạo Hoạt động và Dịch vụ Android sử dụng các quy trình riêng lẻ
Trả lời
Chắc chắn có thể. Xem process
thuộc tính cho service
trong AndroidManifest.xml
http://developer.android.com/guide/topics/manifest/service-element.html
Để báo:
Tên của quá trình mà dịch vụ này để chạy. Thông thường, tất cả các thành phần của một ứng dụng chạy trong tiến trình mặc định được tạo cho ứng dụng. Nó có cùng tên với gói ứng dụng. Thuộc tính quy trình của phần tử có thể đặt mặc định khác cho tất cả các thành phần. Nhưng thành phần có thể ghi đè lên mặc định bằng thuộc tính quy trình riêng của nó, cho phép bạn trải rộng ứng dụng của mình trên nhiều quy trình.
Nếu tên được gán cho thuộc tính này bắt đầu bằng dấu hai chấm (':'), một quy trình mới, riêng tư cho ứng dụng, được tạo khi cần và dịch vụ chạy trong quá trình đó. Nếu tên tiến trình bắt đầu bằng một ký tự chữ thường, dịch vụ sẽ chạy trong một tiến trình toàn cầu của tên đó, với điều kiện là nó có quyền làm như vậy. Điều này cho phép các thành phần trong các ứng dụng khác nhau chia sẻ một quy trình, giảm sử dụng tài nguyên.
IPC cho các dịch vụ là IMHO chỉ bắt buộc nếu dịch vụ phải được các ứng dụng khác tiêu thụ.
Chạy dịch vụ trong quy trình riêng của nó có những lợi thế nhỏ mà bộ thu gom rác cho dịch vụ không ảnh hưởng đến ứng dụng của bạn và dấu chân bộ nhớ của dịch vụ hơi nhỏ hơn một chút nếu chạy một mình.
Nếu việc sử dụng dịch vụ của các ứng dụng khác không phải là yêu cầu đối với bạn, hãy chọn dịch vụ địa phương. Ngoài ra, bạn vẫn có thể chạy dịch vụ theo quy trình riêng và sử dụng giao tiếp khác với ứng dụng của bạn, ví dụ: thông qua bộ thu phát sóng. Tôi đã cố gắng mô tả các cách tiếp cận khác nhau trong hướng dẫn dịch vụ Android của tôi theo liên kết sau: Activity and service communication.
không phải là (dịch vụ trong quy trình tách biệt) cách duy nhất để ngăn dịch vụ gọi điện riêng của mình khi hủy cuộc gọi khi hoạt động gọi bị hủy? – EsmaeelQash
Xin chào Vogella, bạn có thể vui lòng giải thích cho tôi bất kỳ scenerio nào mà chúng tôi không muốn "tiêu thụ dịch vụ bởi các ứng dụng khác", tôi không nhận được thuật ngữ này. cảm ơn – SRam
Chạy dịch vụ trong một quy trình riêng biệt giúp đảm bảo rằng, nếu quá trình của ứng dụng chính bị chấm dứt, dịch vụ có thể tiếp tục. Điều này khá hữu ích. – Luca
- 1. Cách tạo cửa sổ Office 2013 chạy trong các quy trình riêng lẻ
- 2. Android, cách sử dụng DexClassLoader để thay thế động Hoạt động hoặc Dịch vụ
- 3. Dịch vụ báo cáo: Sử dụng quy trình làm dataSet?
- 4. Android: Chuyển dữ liệu giữa dịch vụ và hoạt động
- 5. Cách khởi động dịch vụ Android từ một hoạt động và ngừng dịch vụ trong một hoạt động khác?
- 6. Android - Tương tác dịch vụ và hoạt động
- 7. Hệ điều hành: trình lập biểu quy trình có chạy trong quy trình riêng lẻ
- 8. Nhiệm vụ và quy trình Android, SingleTask và SingleInstance
- 9. Sử dụng các giao dịch với quy trình nghiệp vụ và mẫu Kho lưu trữ
- 10. Cập nhật quy trình riêng lẻ trong gói Oracle
- 11. android cách tạo Hoạt động của riêng tôi và mở rộng nó?
- 12. Android: sử dụng mạng trong dịch vụ
- 13. Cách chia sẻ bộ nhớ giữa các dịch vụ và quy trình người dùng?
- 14. Dịch vụ gọi lại cho hoạt động trong android
- 15. Tìm nạp AutoCompleteTextView các đề xuất từ dịch vụ theo từng chủ đề riêng lẻ
- 16. Gửi dữ liệu từ dịch vụ đến hoạt động Android
- 17. Google Chrome có thể cách ly các tab thành các quy trình riêng lẻ trong khi trông giống như một ứng dụng đơn lẻ như thế nào?
- 18. Dịch vụ Android không hoạt động như một singleton
- 19. Android và dịch vụ RESTful
- 20. Timer Task VS Sử dụng Trình quản lý báo động trong Dịch vụ Android
- 21. Cách sử dụng Dịch vụ WCF với Android
- 22. AlarmManager, BroadcastReceiver và Dịch vụ không hoạt động
- 23. Android: Hoạt động đơn lẻ, nhiều chế độ xem
- 24. Tạo dịch vụ nền trong Android
- 25. Biểu tượng Trình khởi chạy và Hoạt động riêng biệt với Android
- 26. hoạt động bắt đầu android từ dịch vụ
- 27. Cách sử dụng các dịch vụ WCF phụ thuộc phiên sử dụng Ksoap2-Android
- 28. chọn nút xml riêng lẻ bằng cách sử dụng SQL
- 29. Dịch vụ và hoạt động cập nhật RESTful
- 30. "Không thể bắt đầu dịch vụ Ý định" lỗi khi khởi chạy dịch vụ từ một hoạt động trong Android
Tốt. @lyricsboy nhưng một câu hỏi: trong kịch bản của OP, khi Android giết Activity (do đó ứng dụng), nó cũng sẽ giết chết Dịch vụ đang chạy nếu nó đang trên cùng một quá trình? –
Nó phụ thuộc vào cách dịch vụ được bắt đầu (chế độ nào) và các yếu tố khác liên quan đến bộ nhớ. Bạn có thể tìm thêm chi tiết cụ thể tại: http://developer.android.com/guide/topics/fundamentals/processes-and-threads.html – lyricsboy
Cảm ơn, điều đó đã làm điều đó – chris