Как запустить убитый системой BroadcastReceiver
Я создаю приложение, которое прослушивает события телефонных звонков. Но когда системе не хватает памяти, она уничтожает мой BroadcastReceiver. Как этого избежать. Если этого нельзя избежать, подскажите, как снова запустить BroadcastReceiver. Спасибо за помощь.
Код BroadcastReceiver
public class PhoneStateReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
try {
String state = intent.getStringExtra(TelephonyManager.EXTRA_STATE);
if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) {
String incomingNumber = intent.getStringExtra(TelephonyManager.EXTRA_INCOMING_NUMBER);
if(incomingNumber != null) {
Intent serviceWriteCallData = new Intent(context, WriteIncomCallService.class);
serviceWriteCallData.putExtra("phoneNumber", incomingNumber);
WriteIncomCallService.enqueueWork(context, serviceWriteCallData);
}
}
if ((state.equals(TelephonyManager.EXTRA_STATE_OFFHOOK))) {
}
if (state.equals(TelephonyManager.EXTRA_STATE_IDLE)) {
}
} catch (Exception e) {
e.printStackTrace();
}
}}
Регистрация в манифесте
<receiver android:name=".PhoneStateReceiver">
<intent-filter>
<action android:name="android.intent.action.BOOT_COMPLETED"/>
<action android:name="android.intent.action.QUICKBOOT_POWERON" />
<action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
<action android:name="android.intent.action.PHONE_STATE"/>
</intent-filter>
</receiver>