2011-08-26 31 views
11

Trong ứng dụng của tôi, tôi sử dụng một dịch vụ để liên lạc với máy chủ của chúng tôi. Dịch vụ sinh ra một số luồng tin nhắn để xử lý các nhiệm vụ với các ưu tiên khác nhau.Dịch vụ Android onCreate được gọi nhiều lần mà không cần gọi trênDestroy

Mô hình này đã được sử dụng trong khoảng một năm mà không có vấn đề lớn. Tuy nhiên, gần đây, tôi tìm thấy một số thời gian onCreate của lớp dịch vụ của tôi được gọi nhiều lần. onDestroy không bao giờ được gọi giữa hai cuộc gọi onCreate. Vì vậy, tôi đã không có cơ hội để tiêu diệt các chủ đề hiện có. Khi hành vi này xảy ra, dịch vụ có chủ đề trùng lặp bên trong.

Điều duy nhất tôi đã thay đổi là chạy dịch vụ dưới dạng dịch vụ nền trước là dấu hiệu người dùng trong ứng dụng. Tôi tự hỏi liệu dịch vụ tiền cảnh có gây ra vấn đề hay không.

Bất kỳ ý tưởng nào?

Trả lời

0

Tôi đã gặp sự cố tương tự khi tôi đang xử lý dịch vụ bluetooth (sự cố xảy ra trong quá trình phát triển). Khi tôi ngắt kết nối thiết bị của tôi và giết ADB nó đã không xảy ra một lần nữa và onCreate được gọi chỉ một lần. Tôi cho rằng đó là một số lỗi bởi vì nó xảy ra theo thời gian. Nhưng có thể bạn có vấn đề hơi khác ...

12

Tôi đã gặp vấn đề tương tự khi dịch vụ của tôi sử dụng quy trình tương tự với các hoạt động (mặc định). nhưng không còn vấn đề gì khi tôi thực hiện dịch vụ của mình sử dụng một quy trình khác. Tôi sửa AndroidManifest.xml của tôi như dưới đây ... (thêm android: quá trình thuộc tính)

<service android:name="kr.co.pkbio.binoo.CacheFileManagerService" android:process=":kr.co.pkbio.binoo.service"/> 
<service android:name="kr.co.pkbio.binoo.ActivityStackManagerService" android:process=":kr.co.pkbio.binoo.service"/> 

thấy http://developer.android.com/guide/topics/manifest/service-element.html để biết thông tin.

+0

Dude! bạn thật tuyệt vời! bạn đã giải quyết được vấn đề của tôi – dd619

+0

Không thể hoạt động trên Android 4.2.2, bạn có ý tưởng gì về điều đó không? – Wangchao0721

+1

Không hoạt động cho tôi: ( – MobileMon

0

Điều này có thể hữu ích đối với một người nào đó. Tôi đã gặp vấn đề này khi lưu trữ bản đồ thông qua một gói trong phương thức onSaveInstanceState trong một trong các hoạt động của tôi. Tôi tin rằng vì bản đồ chứa các tham chiếu đến các đối tượng đang được sử dụng trong các phần khác của ứng dụng (một trong số đó là dịch vụ của tôi) mỗi khi tôi rời khỏi hoạt động, dịch vụ của tôi sẽ bắt đầu lại.

Tôi đoán đây là android shenanigans OS.

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