내 방송 수신기는 여기에 두 서비스 사이의 작업 ..브로드 캐스트 리시버는이 개 서비스
이 코드
[첫 서비스로서]
class ServiceHandler extends Handler
{
@Override
public void handleMessage(Message msg) {
case Constants.MESSAGE_READ:
Log.d("MainService_Handler", "Service - MESSAGE_READ: ");
byte[] readBuf = (byte[]) msg.obj;
// construct a string from the valid bytes in the buffer
READ_DATA = readBuf;
String strBuf = new String(readBuf, 0, msg.arg1);
READ_STRING = strBuf;
Intent intent = new Intent(MainService.this, InputHelperService.class);
intent.setAction(InputHelperService.READ_MESSAGE);
intent.putExtra("read", readBuf[1]);
sendBroadcast(intent);
//inputCommitment(readBuf[0]);
break;
[두 번째 서비스]
있습니다 넣은 사람은 아니다public class InputHelperService extends InputMethodService {
public static String READ_MESSAGE = "com.example.eyelink.READMESSAGE";
@Override
public int onStartCommand(Intent intent, int flags, int startId){
Log.i("InputHelperService", "InputHelperService - onStartCommand()");
IntentFilter intentFilter = new IntentFilter();
intentFilter.addAction("READ_MESSAGE");
registerReceiver(messageReceiver, intentFilter);
Log.i("InputHelperService", "InputHelperService - onStartCommand(): register the receiver");
return super.onStartCommand(intent, flags, startId);
}
@Override
public void onDestroy(){
Log.i("InputHelperService", "InputHelperService: onDestroy()");
unregisterReceiver(messageReceiver);
}
...
public final BroadcastReceiver messageReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent){
Log.i("InputHelperService", "InputHelperService: Broadcast onReceive()");
if(intent.getAction().equals(READ_MESSAGE)){
byte data = intent.getExtras().getByte("read");
Log.i("InputHelperService", "InputHelperService: Broadcast onReceive() - " + data);
}
}
};
하지만 내 수신자로부터 응답이 없습니다.
무엇이 잘못 되었나요? 여기
이 * 첫 번째 서비스의 서비스 처리기 클래스는 내부 클래스입니다. –
'sendBroadcast (intent);'메소드가 호출 될 때'InputHelperService' 서비스가 실행 중입니까? –
예. 잘 돌아갑니다. –