Отправляйте данные из широковещательного приемника в простой класс Java, пока приложение закрыто. ⇐ Android
Отправляйте данные из широковещательного приемника в простой класс Java, пока приложение закрыто.
Я создаю приложение для Android для обработки SMS, я сделал Broadcast Receiver для прослушивания входящих SMS. когда дело доходит до этого, он должен отправить SMS-содержимое в другой класс, чтобы выполнить некоторую логику. Для этого я использовал интерфейс, это мой код.
публичный класс SmsReceiver расширяет BroadcastReceiver { public static void initSmsFetcher(SmsFetcher mSmsFetcher){ smsFetcher = mSmsFetcher; } @SuppressLint("UnsafeProtectedBroadcastReceiver") @Override public void onReceive (контекст контекста, намерение намерения) { Дополнительные возможности пакета = Intent.getExtras(); если (дополнительно != ноль){ Object[] smsextras = (Object[]) extras.get( "pdus"); for (Объект smsextra : smsextras) { SmsMessage smsmsg = SmsMessage.createFromPdu((byte[]) smsextra); smsFetcher.onSmsReceived(smsmsg); } } } } интерфейс SmsFetcher{ недействительными onSmsReceived (SmsMessage smsMessage); } это мой простой класс.
Открытый класс SmsEasy реализует SmsFetcher{ СмсEasy(){ SmsReceiver.initSmsFetcher(это); } @Override public void onSmsReceived (SmsMessage smsMessage) { // Выполняем некоторую логику. } } И это моя основная активность.
публичный класс MainActivity расширяет AppCompatActivity { smsEasy smsEasy; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_main); smsEasy = новый SmsEasy(); } } Я зарегистрировал свой широковещательный приемник в манифесте. Это работает нормально, когда мое приложение работает, но проблема возникает, когда приложение закрывается: мне сообщается, что smsFetcher имеет значение null в этой строке: smsFetcher.onSmsReceived(smsmsg); но мой приемник по-прежнему нормально захватывает SMS.
Я создаю приложение для Android для обработки SMS, я сделал Broadcast Receiver для прослушивания входящих SMS. когда дело доходит до этого, он должен отправить SMS-содержимое в другой класс, чтобы выполнить некоторую логику. Для этого я использовал интерфейс, это мой код.
публичный класс SmsReceiver расширяет BroadcastReceiver { public static void initSmsFetcher(SmsFetcher mSmsFetcher){ smsFetcher = mSmsFetcher; } @SuppressLint("UnsafeProtectedBroadcastReceiver") @Override public void onReceive (контекст контекста, намерение намерения) { Дополнительные возможности пакета = Intent.getExtras(); если (дополнительно != ноль){ Object[] smsextras = (Object[]) extras.get( "pdus"); for (Объект smsextra : smsextras) { SmsMessage smsmsg = SmsMessage.createFromPdu((byte[]) smsextra); smsFetcher.onSmsReceived(smsmsg); } } } } интерфейс SmsFetcher{ недействительными onSmsReceived (SmsMessage smsMessage); } это мой простой класс.
Открытый класс SmsEasy реализует SmsFetcher{ СмсEasy(){ SmsReceiver.initSmsFetcher(это); } @Override public void onSmsReceived (SmsMessage smsMessage) { // Выполняем некоторую логику. } } И это моя основная активность.
публичный класс MainActivity расширяет AppCompatActivity { smsEasy smsEasy; @Override protected void onCreate (Bundle saveInstanceState) { super.onCreate(saveInstanceState); setContentView(R.layout.activity_main); smsEasy = новый SmsEasy(); } } Я зарегистрировал свой широковещательный приемник в манифесте. Это работает нормально, когда мое приложение работает, но проблема возникает, когда приложение закрывается: мне сообщается, что smsFetcher имеет значение null в этой строке: smsFetcher.onSmsReceived(smsmsg); но мой приемник по-прежнему нормально захватывает SMS.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение