Я создаю приложение, которое запускает услугу каждый раз, когда выполняется вызов, когда я впервые создаю вызов, широковещательный приемник запускает услугу, и все хорошо.BroadCast Receiver слишком много экземпляров OutgoingCallBroadcaster; экземпляры = 2; limit = 1
Но тогда проблема: После того, как я снова запустить номеронабиратель я получаю следующее сообщение об ошибке в LogCat:
10-30 10:10:38.674: E/StrictMode(171): class com.android.phone.OutgoingCallBroadcaster; instances=2; limit=1
Я попытался решить эту проблему, вызвав эту команду в конце OnReceive:
this.abortBroadcast();
Это устраняет эту ошибку, но также останавливает запуск службы, может ли кто-нибудь помочь мне исправить эту проблему, или есть ли кто-нибудь, кто испытал это неудобство?
Это приемник:
public class OutgoingCallReceiver extends BroadcastReceiver {
public OutgoingCallReceiver() {
}
@Override
public void onReceive(Context context, Intent intent) {
// Extract phone number reformatted by previous receivers
String phoneNumber = getResultData();
if (phoneNumber == null) {
// No reformatted number, use the original
phoneNumber = intent.getStringExtra(Intent.EXTRA_PHONE_NUMBER);
}
Intent in = new Intent(context, OutgoingCallHandler.class);
context.startService(in);
OutgoingCallHandler.phonenumber = phoneNumber;
}
}
А вот заявления в манифесте:
<service
android:name=".IncomingCallHandler"
android:label="@string/title_activity_main" >
</service>
<receiver android:name=".OutgoingCallReceiver" >
<intent-filter>
<action android:name="android.intent.action.NEW_OUTGOING_CALL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
Все помощь очень Welcom!
Я решил эту проблему, остановив службу после того, как это было сделано, –