来自子线程的Android广播

时间:2012-02-22 17:36:30

标签: android multithreading broadcastreceiver broadcast

我正在尝试使用广播公司从子线程向主UI线程发送消息。所以我的活动有一个广播接收器(我讨厌多个),我希望能够从一个子线程(可运行)发送消息。

以下是我在子线程中所做的事情:

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

但问题是我如何定义上下文?它给出了异常“上下文无法解决”如果我不使用它,它将找不到“sendBroadcast”方法。那怎么办呢?

1 个答案:

答案 0 :(得分:5)

您可以将活动或应用程序上下文传递给您的主题。

如果你在某个活动中,你可以这样做:

    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.
        }
    }