브로드 캐스트 서비스 XYZ에서 비 정적 메서드를 호출하려고합니다. 부팅시 수신기가 서비스를 시작합니다. 실행중인 서비스에서 메소드를 실행할 생각이 있습니까? 이 포럼의 한 가지 해결책은 메서드를 정적으로 만들고 단일 패턴을 사용하여 실행하는 것입니다. 그러나 또 다른 방법이 있습니까? 바인더가있는 것 같습니까?브로드 캐스트에서 실행중인 서비스의 메서드를 실행하는 방법은 무엇입니까?
난 다음 clases이 예를 들어// 편집 :
public class MyService extends Service{
.....
public void method(){
//TODO
}
}
public class MyBroadcastReceiver extends BroadcastReceiver{
.....
public void onReceive(Context context, Intent intent) {
String intentAction=intent.getAction();
if(intentAction.equals(Intent.ACTION_BOOT_COMPLETED)){
//start service
Intent serviceIntent = new Intent(context, MyService.class);
context.startService(serviceIntent);
}
else{
//TODO call method() in MyService
}
}
은 내가 어떻게 방법 method()
를 호출 할 수 있습니까? 나는 context.getSystemService()
시스템 서비스와 함께 캐스트 할 수 있다는 것을 알고 있습니다. 하지만 내 서비스 객체를 어떻게 얻을 수 있습니까?
인사
나는 당신이 성취하려는 것을 확신하지 못합니다. 서비스에서 브로드 캐스트 할 때 모든 활성 활동에서 해당 브로드 캐스트를들을 수 있습니다. 브로드 캐스트를 받으면 자신이 원하는대로 무엇이든 실행할 수 있습니다. 브로드 캐스트를 수신 할 때 서비스에서 메소드를 실행하려는 경우, 싱글 톤없이이를 수행 할 수 있습니다. – jlindenbaum
내 서비스와 내 브로드 캐스트는 독립적 인 클립에 있습니다. 업데이 트에서 하나의 예를 들어 –