Intent & BroadcastReceiver

Я начинаю изучать разработку для Android, так что мои знания на данный момент действительно ограничены. Пытаюсь поиграть с трансляциями, но застрял и не понимаю, что делаю не так. То, что я пытаюсь сделать, это просто показать простой тост от широковещательного приемника.

Намерение - это настраиваемое намерение, определенное в манифесте:

<receiver android:name=".receiver.SendReceiver" android:enabled="true">
     <intent-filter>
   <action android:name="com.android.terralink.sem.SOCCIA"></action>
     </intent-filter>
</receiver>

Получатель определяется следующим образом:

public class SearchReceiver extends BroadcastReceiver {
    public void onReceive(Context context, Intent intent){
   Toast.makeText(context, "asasa", Toast.LENGTH_SHORT).show();
   }
}

В первом действии, вызываемом из приложения делаю так:

Intent i2 = new Intent(this, SearchReceiver.class);
i2.setAction(CUSTOM_INTENT);
sendBroadcast(i2);

Я проверил, что код Toast работает в Activity, но не в трансляции. Это потому, что тост не может быть показан в контексте получателя?

Также еще один вопрос о структуре приложения Android. Если из моей Activty я разрешаю пользователю вставить строку в текстовое поле и отправить (привязка кнопки), и я хочу, чтобы приложение выполняло поиск в фоновом режиме и уведомляло пользователя, когда результат будет готов, правильно ли сделать следующее? 1) Основная деятельность с окном поиска 2) Запустите службу, которая получает данные, отправьте широковещательную рассылку 3) Получатель уведомляет пользователя и открывает Activity, который показывает результат

Есть ли смысл делать что-то подобное? Или уведомление должно быть сделано самой службой до завершения своей работы?

Спасибо

1
задан Kara 1 April 2014 в 19:52
поделиться