2010-03-25 20 views
27

Dịch vụ startService() có tạo một cá thể Dịch vụ mới hoặc sử dụng phiên bản hiện tại không? Ví dụ, trong đoạn mã sau, nó có tạo hai cá thể UpdateService hoặc chỉ một cá thể UpdateService không? Cảm ơn.Liệu startService() có tạo một cá thể Dịch vụ mới hoặc sử dụng phiên bản hiện tại không?

int[] appWidgetIds = new int[] {1, 2}; 
    for (int appWidgetId : appWidgetIds) { 
     Intent intent = new Intent(context, UpdateService.class); 
     intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID, appWidgetId); 
     context.startService(intent); 
    } 

Trả lời

48

Nếu dịch vụ đã bắt đầu, nó không bắt đầu làm bản sao thứ hai, nhưng onStart() vẫn được gọi trên phiên bản hiện tại. Dịch vụ là những người độc thân tự nhiên - có chính xác 0 hoặc 1 bản sao của dịch vụ đang hoạt động.

+0

Cảm ơn @CommonsWare Tôi đã bình chọn câu hỏi của bạn, mỗi lần tôi thấy câu trả lời của bạn, dễ hiểu nhất và tôi thấy hữu ích và upvote câu trả lời của bạn :) – blackHawk

14

Phương pháp onStart không được dùng nữa, thay vào đó hãy sử dụng onStartCommand.

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