2012-04-28 3 views
6

백그라운드 서비스가 실행 중입니다. 이제 사용자가 액티비티를 종료하면 서비스가 계속 실행됩니다. 맞습니까? 이제 사용자가 앱을 다시 시작하면 백그라운드 서비스에 액세스하여 일부 메소드를 호출하려고합니다. 백그라운드 서비스의 인스턴스에 어떻게 액세스 할 수 있습니까?백그라운드 서비스 인스턴스 가져 오기

고마워!

답변

6

이 기능은 나에게 기본적으로 사용되었습니다. 그러나 공용 정적 멤버는 최종본이 아니면 좋지 않기 때문에 대안이 있다면 사용하지 마십시오. 서비스에서 공용 범위가있는 정적 변수를 만들 수 있습니다.

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

다음 변수를 'this'로 초기화하면 현재 실행중인 서비스에 대한 참조가됩니다. 언제든지 귀하의 활동에 참고 자료로 사용하십시오.

+0

은 훌륭하게 들립니다. 오늘 시도해보고 작동하는지 확인하십시오! 고맙습니다! – Ishwar

+0

좋아, 그래서 내가 무슨 말을했는지,하지만 난 NullPointerException지고있다. 내 코드 : http://pastebin.com/UT9Rcyi4 – Ishwar

+1

이것은 (stackoverflow.com/questions/5085190/...) startService에 대한 호출이 비동기식이기 때문에 발생합니다. 서비스가 아직 시작되지 않았습니다! 서비스를 시작하십시오. startActivity()를 사용하여 활동을 시작합니다. 나를 위해 일하고 있습니다. – rahulserver

0

백그라운드 서비스와 통신하려는 경우. 당신은 바인더 메커니즘을 사용할 수 없으며, 이것에 대해 당신이 웹에 액세스 할 수 : android develop

배경 서비스를

덕분에 많은

1

서비스가 만약을 사용하는 방법을 알려주는 예를 들어이를 활동을 종료 한 후에도 계속 실행하는 것은 시작 방법에 따라 다릅니다. 서비스가 아직 실행중인 경우 startService()/bindService()를 호출하면 '이전'서비스에 연결됩니다.

+1

서비스가 백그라운드에서 실행중인 경우 시작 또는 바인드 서비스가 새 서비스 인스턴스를 생성하지 않음을 의미합니다. 대신, 오래된 하나 가져올 것인가 ?? – Ishwar

관련 문제