2012-04-28 4 views
6

Vì vậy, tôi có một dịch vụ nền đang chạy. Bây giờ, nếu người dùng thoát khỏi hoạt động, dịch vụ sẽ vẫn chạy, phải không? Bây giờ khi người dùng khởi động lại ứng dụng, tôi muốn truy cập dịch vụ nền và gọi một số phương thức. Làm thế nào tôi có thể truy cập vào thể hiện của dịch vụ nền?Ví dụ về Dịch vụ nền

Cảm ơn các bạn!

Trả lời

6

Điều này làm việc cho tôi ra khỏi hộp! Tuy nhiên, không sử dụng nó nếu bạn có lựa chọn thay thế bởi vì các thành viên tĩnh công cộng là không tốt trừ khi họ là cuối cùng. Bạn có thể tạo biến tĩnh với phạm vi công khai trong Dịch vụ.

public static BackgroundService bs; 
@Override 
public void onCreate(){ 
    bs=this;} 

Sau đó khởi tạo biến với 'this' làm cho nó tham chiếu đến dịch vụ đang chạy hiện tại. Sử dụng nó làm tài liệu tham khảo trong hoạt động của bạn bất cứ lúc nào.

+0

thật tuyệt vời! sẽ thử nó ngay hôm nay và xem nó có hoạt động không! cảm ơn bạn! – Ishwar

+0

Ok, vì vậy tôi đã làm những gì u nói, nhưng tôi nhận được NullPointerException. Mã của tôi: http://pastebin.com/UT9Rcyi4 – Ishwar

+1

Điều này là bởi vì theo (stackoverflow.com/questions/5085190/…) các cuộc gọi đến startService là không đồng bộ. Dịch vụ của bạn chưa được bắt đầu! Chỉ cần bắt đầu dịch vụ của bạn trong một số hoạt động khác và từ đó bắt đầu hoạt động của bạn bằng startActivity(). Nó hoạt động với tôi. – rahulserver

0

Nếu bạn muốn liên lạc với dịch vụ nền. Bạn không thể sử dụng cơ chế chất kết dính, và về vấn đề này bạn có thể truy cập vào web này: android develop

có một ví dụ để nói thế nào để sử dụng dịch vụ nền

thanks a lot

1

Nếu dịch vụ tiếp tục chạy sau khi bạn thoát hoạt động của mình phụ thuộc vào cách bạn bắt đầu hoạt động. (Đọc về điều này trong tài liệu startService()/bindService()) Nếu Dịch vụ của bạn vẫn đang chạy, sau đó các cuộc gọi tới startService()/bindService() sẽ kết nối bạn với dịch vụ 'cũ' của bạn.

+1

vì vậy bạn có nghĩa là nếu dịch vụ đang chạy dưới nền, dịch vụ bắt đầu hoặc liên kết sẽ không mang lại một phiên bản dịch vụ mới. Thay vào đó, sẽ lấy cái cũ? – Ishwar