Android от приемника до активности - PullRequest
0 голосов
/ 15 июля 2010

Я только начинаю разработку для Android, и у меня есть вопрос о связи между классом приемника и классом активности. Я очень новичок в JAVA и Android, поэтому я надеюсь, что не буду звучать слишком глупо. Я разрабатываю приложение, в котором я перехватываю SMS-сообщение, а затем на основе различных элементов этого SMS-сообщения могу удалить его, как только оно будет сохранено в папке «Входящие». У меня есть класс получателя, который перехватывает текстовое сообщение, и я также могу удалить сообщения из своего почтового ящика с кодом в классе активности, используя кнопку в данный момент. У меня проблема в связи между классом получателя и классом активности, где находится код для удаления сообщения. Я попытался поместить этот код непосредственно в класс получателя, но, как я уверен, большинство из вас уже знают, что класс BroadcastReceiver, похоже, не поддерживает то, что мне нужно для удаления сообщений. Я долго искал ответ на этот вопрос, но не смог ничего найти. Честно говоря, я не уверен, что знаю достаточно о JAVA и Android, чтобы даже распознать решение, если бы увидел его.

Ответы [ 2 ]

0 голосов
/ 04 октября 2012

Вы можете реализовать логику обработки сообщений, используя IntentService. Когда ваш получатель получит новое входящее сообщение, запустите IntentService, передавая намерение с данными сообщения.

Приемник

onReceive(Context context, Intent intent) {
    //Setup Intent
    Intent i = new Intent(context, MyIntentService.class);
    i.setAction(MyIntentService.HANDLE_MESSAGE);        
    //Pass data to intent
    i.putExtra(MyIntentService.MESSAGE_DATA, data);
    //Start Intent Service          
    context.startService(i);
}

MyIntentService

onHandleIntent(Intent i){
    String action = i.getAction();
    if(action != null && action.equals(MyIntentService.HANDLE_MESSAGE){
        //Get data and implement message logic
    }
}

Надеюсь, это поможет.

0 голосов
/ 15 июля 2010

Если вам нужно выполнить работу без интерфейса, посмотрите на создание Service, если вам нужен пользовательский интерфейс, просто запустите Activity

Вы можете использовать параметр Context метода onReceive получателя для запуска новой услуги / действия

Вы можете использовать Extras для передачи параметров между контекстами. Таким образом, вы можете добавить дополнительный идентификатор сообщения или целое сообщение и передать его вашей службе / деятельности и отправить его туда.

...