Có, nếu bạn đã sử dụng android: process thì bạn có nó chạy trong một quá trình riêng biệt, vì vậy khi dịch vụ bắt đầu một quá trình mới được bắt đầu cho nó và do đó một đối tượng Application mới cho quá trình đó cần phải được tạo ra.
Nhưng có một vấn đề cơ bản hơn - nó chỉ là không đúng cho một đối tượng ứng dụng để bắt đầu một trong các dịch vụ của nó. Điều quan trọng là bạn không nhầm lẫn ứng dụng với cách bạn có thể nghĩ về một "ứng dụng" trong một hệ điều hành khác. Đối tượng Application không điều khiển ứng dụng. Nó chỉ là một trạng thái toàn cầu cho ứng dụng trong quá trình đó. Thực tế, đối tượng Application hoàn toàn không cần thiết - bạn không bao giờ cần một ứng dụng để viết một ứng dụng Android. Nói chung tôi thực sự khuyên mọi người không nên sử dụng nó. Nó có nhiều khả năng gây rắc rối hơn bất cứ điều gì khác.
Một cách khác để đặt điều này: những gì thực sự xác định một ứng dụng là tập hợp các hoạt động, dịch vụ, người nhận và thẻ nhà cung cấp. Đó là những gì được "tung ra". Tất cả một ứng dụng là một thứ được tạo ra như là một phần của quá trình khởi tạo một ứng dụng. Nó không có vòng đời của riêng nó, nó chỉ ở đó để phục vụ các thành phần thực sự khác trong ứng dụng.
Vì vậy, chỉ cần bỏ qua Ứng dụng khi thiết kế ứng dụng của bạn; nó sẽ làm giảm sự nhầm lẫn. (Ở vị trí của nó, tôi thích sử dụng toàn cầu đơn cho tiểu bang đó.)
Cũng như một quy tắc chung, tôi khuyên bạn không nên sử dụng android: process. Chắc chắn có một số sử dụng cho nó, nhưng phần lớn thời gian nó không cần thiết và chỉ làm cho một ứng dụng sử dụng nhiều RAM, ít hiệu quả hơn và khó viết hơn (vì bạn không thể tận dụng lợi thế của các hình cầu trong một quá trình) . Nó sẽ được rõ ràng cho bạn nếu bạn đạt đến một nơi mà có thực sự là một lý do tốt để sử dụng android: quá trình.
có vẻ như vấn đề có thể liên quan đến thực tế là tôi đã khai báo Dịch vụ của mình trong Tệp kê khai bằng cách sử dụng thẻ android: process. nó có hợp lý không? –
Có. Tôi vừa kiểm tra cùng một nguồn thông tin và đó cũng là điều tôi hiểu. Tôi đã không kiểm tra mặc dù. –
nguồn thông tin của bạn là gì? Tôi tò mò muốn biết cách xử lý vụ này. điều này không phải là hiếm khi có một Dịch vụ tạo ra quy trình riêng của mình và lớp Ứng dụng được cho là một "singleton", nơi các đối tượng chung có thể được chia sẻ. –