Android трансляция из дочерней темы - PullRequest
0 голосов
/ 22 февраля 2012

Я пытаюсь использовать вещательные компании для отправки сообщений из дочернего потока в основной поток пользовательского интерфейса. Итак, у меня есть получатель широковещательных сообщений о моей деятельности (я ненавижу несколько), и я хочу иметь возможность отправлять им сообщения из одного дочернего потока (runnable).

Вот что я делаю в дочерней ветке:

Intent broadcastIntent = new Intent();
broadcastIntent.setAction(ResponseReceiver.ACTION_RESP);
broadcastIntent.putExtra("Controller", "connect");
context.sendBroadcast(broadcastIntent);

Но проблема в том, как определить контекст? Это дает исключение «контекст не может быть разрешен». Если я его не использую, он не найдет метод «sendBroadcast». Так как это можно сделать?

1 Ответ

5 голосов
/ 22 февраля 2012

Вы можете передать свою активность или контекст приложения в вашу ветку.

Если вы в Деятельности, вы можете сделать:

    Context myContext;
    myContext = this;

или

    myContext = getApplicationContext();

Затем передайте контекст вашему дочернему потоку:

    new Thread(new SomeThread(myContext)).start();



    public class SomeThread implements Runnable
    {
        Context context;
        public SomeThread(Context ctx)
        {
            context = ctx;
        }

        public void run()
        {
            // Do stuff with context.
        }
    }
...