포드 그라운드에서 실행중인 서비스가 있습니다.이 서비스에는 브로드 캐스트 수신기가있어 SMS_RECEIVED 동작을 수신합니다.Android-SMS_RECEIVED + 전경 서비스 충돌로 브로드 캐스트
사용자가 응용 프로그램 안에있을 때 (응용 프로그램과 서비스가 모두 포 그라운드에 있음) 모든 것이 잘 작동하고 의도를 수신하고 있습니다.
그러나 사용자가 응용 프로그램을 사용하는 경우 (브로드 캐스트가있는 서비스 만 포 그라운드에 있음) SMS를 받으면 서비스가 중지됩니다.
서비스가 중지되면 아무 곳에서나 오류 보고서를 찾을 수 없습니다 (logcat이 아니고 충돌 대화 상자가 나타나지 않음).
방송에 내 서비스 :
public class myService extends IntentService {
private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(myService.this, intent.getAction(), Toast.LENGTH_SHORT).show();
}
};
@Override
public void onCreate() {
super.onCreate();
IntentFilter i= new IntentFilter("android.provider.Telephony.SMS_RECEIVED");
i.setPriority(999);
registerReceiver(mReceiver, receiverFilter);
startForeground(...);
}
public void onDestroy() {
super.onDestroy();
stopForeground(true);
}
}
그리고 나는 또한 내 매니페스트에 다음과 같은 권한이 있습니다
<uses-permission android:name="android.permission.RECEIVE_SMS" />
는 myService는 매니페스트에 다음과 같이 선언한다 :
<service
android:name=".Services.myService"
android:enabled="true"
android:exported="false" />
오류가있는 logcat을 표시 할 수 있습니까? –
안녕하세요 @ MasterDisaster, 거기에 logcat 오류가 표시됩니다. – user12597562891
'전경 서비스 충돌 '이므로 충돌하거나 충돌하지 않습니다. 충돌이 발생하면 logcat에 오류가 발생합니다. –