2013-11-09 13 views
5

Tôi có câu hỏi này về các dịch vụ trong Android và cách ngăn chặn khởi động lại dịch vụ ngay lập tức nếu hoạt động bị cuốn trôi trong trình quản lý tác vụ (khi bạn giữ nút home).Làm thế nào để ngăn chặn dịch vụ khởi động lại sau khi hoạt động được quét từ công cụ chuyển đổi nhiệm vụ?

Tôi muốn có một dịch vụ để kiên trì và có nó quá trình riêng và hình ảnh bộ nhớ, vì vậy khi xuống đóng hoạt động của tôi, trong trường hợp này cuốn trôi từ nhiệm vụ switcher, dịch vụ này sẽ không khởi động lại ...

Could ai cho tôi xem một số hướng dẫn và trang web giải thích cách giải quyết vấn đề này?

Trả lời

0

Đặt dịch vụ của bạn trong một quá trình riêng biệt như sau:

Đến khai dịch vụ của bạn trong manifest android và thay đổi nó để:

<service android:name=".ServiceName" 
 
     android:process=":remote" />

LƯU Ý:

Vì dịch vụ của bạn đang hoạt động riêng biệt quá trình bạn phải chuyển đổi các quy trình trong LogCat của bạn (nếu sử dụng Android Studio) để xem nhật ký gỡ lỗi của bạn.

0

Servcices được thiết kế để khởi động lại ở chế độ nền khi bị phá hủy (đây là một tuyên bố rộng rãi, có nhiều yếu tố), do đó để đảm bảo điều này không xảy ra:

Hoặc tạo ra một bound service mà được tạo ra và bị phá hủy với các hoạt động kêu gọi:

Ví dụ này được lấy từ các tài liệu

public class LocalService extends Service { 
    private final IBinder mBinder = new LocalBinder(); 

    public class LocalBinder extends Binder { 
     LocalService getService() { 
      return LocalService.this; 
     } 
    } 

    @Override 
    public IBinder onBind(Intent intent) { 
     return mBinder; 
    } 
} 

Hoặc chạy các dịch vụ trong foreground, để khi nó được lấy ra từ tiền cảnh nó bị phá hủy.

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