我正在尝试使用广播公司从子线程向主UI线程发送消息。所以我的活动有一个广播接收器(我讨厌多个),我希望能够从一个子线程(可运行)发送消息。
以下是我在子线程中所做的事情:
Intent broadcastIntent = new Intent();
broadcastIntent.setAction(ResponseReceiver.ACTION_RESP);
broadcastIntent.putExtra("Controller", "connect");
context.sendBroadcast(broadcastIntent);
但问题是我如何定义上下文?它给出了异常“上下文无法解决”如果我不使用它,它将找不到“sendBroadcast”方法。那怎么办呢?
答案 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.
}
}