Я начинаю изучать разработку для 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, который показывает результат
Есть ли смысл делать что-то подобное? Или уведомление должно быть сделано самой службой до завершения своей работы?
Спасибо