백그라운드 서비스가 하나일때 브로드캐스트 리시버를 등록하여 사용하였을 때는 브로드캐스트를 잘 받았습니다. 그런데 백그라운드 서비스 하나를 더 사용하기 위하여 브로드캐스트 리시버를 받을 수 있는 백그라운드 서비스를 하나 만들었습니다. 그런데 브로드캐스트를 받지 못하는것 같습니다.. 소스 첨부할테니 한번 봐주세요ㅜ 원래 백그라운드 서비스는 하나만 사용해야 하나요?
메인에서 서비스 실행
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
try{
startService(new Intent(MainActivity.this,BroadcastService.class));
Log.d("main","service o");
}
catch(Exception ex){
Log.e("main","service x",ex);
}
브로드캐스트를 백그라운드에서 받기위한 서비스
public class BroadcastService extends Service {
private BroadcastReceiver mReceiver;
@Override
public void onCreate(){
super.onCreate();
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
mReceiver = new Broadcast();
registerReceiver(mReceiver, filter);
Log.d("onCreate()","브로드캐스트리시버 등록됨");
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
if( intent == null)
{
IntentFilter filter = new IntentFilter(Intent.ACTION_SCREEN_ON);
mReceiver = new Broadcast();
registerReceiver(mReceiver, filter);
}
super.onStartCommand(intent,flags,startId);
return START_STICKY;
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterReceiver(mReceiver);
Log.d("onDestory()","브로드캐스트리시버 해제됨");
}
@Override
public IBinder onBind(Intent intent) {
return null;
}