来自子线程的Android广播
我正在尝试使用广播器将消息从子线程发送到主UI线程。所以我的活动上有一个广播接收器(我讨厌多个),我希望能够从一个子线程(runnable)向它们发送消息 以下是我在子线程中所做的操作:来自子线程的Android广播,android,multithreading,broadcastreceiver,broadcast,Android,Multithreading,Broadcastreceiver,Broadcast,我正在尝试使用广播器将消息从子线程发送到主UI线程。所以我的活动上有一个广播接收器(我讨厌多个),我希望能够从一个子线程(runnable)向它们发送消息 以下是我在子线程中所做的操作: Intent broadcastIntent = new Intent(); broadcastIntent.setAction(ResponseReceiver.ACTION_RESP); broadcastIntent.putExtra("Controller", "connect"); context.s
Intent broadcastIntent = new Intent();
broadcastIntent.setAction(ResponseReceiver.ACTION_RESP);
broadcastIntent.putExtra("Controller", "connect");
context.sendBroadcast(broadcastIntent);
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.
}
}
但问题是我如何定义上下文?它给出了异常“上下文无法解析”,如果我不使用它,它将找不到“sendBroadcast”方法。那么如何做到这一点呢?您可以将活动或应用程序上下文传递给线程 如果您正在参加活动,您可以:
Context myContext;
myContext = this;
或
然后在上下文中传递给您的子线程:
Intent broadcastIntent = new Intent();
broadcastIntent.setAction(ResponseReceiver.ACTION_RESP);
broadcastIntent.putExtra("Controller", "connect");
context.sendBroadcast(broadcastIntent);
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.
}
}
您可以将活动或应用程序上下文传递给线程 如果您正在参加活动,您可以:
Context myContext;
myContext = this;
或
然后在上下文中传递给您的子线程:
Intent broadcastIntent = new Intent();
broadcastIntent.setAction(ResponseReceiver.ACTION_RESP);
broadcastIntent.putExtra("Controller", "connect");
context.sendBroadcast(broadcastIntent);
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.
}
}
是的,没错。问题是我想避免:)最初我使用处理程序向活动发送消息,每次活动更改时,我都必须将处理程序引用发送到子线程。这和那没什么区别:(废话。啊,如果你只想从任何地方访问上下文,你可以尝试一下这个线程中的一些想法:是的,没错。问题是我想避免:)最初我用处理程序向活动发送消息,每次活动更改时,我都必须将处理程序引用发送到子线程。这和那没什么区别:(废话。啊,如果你只想从任何地方访问上下文,你可以尝试一下这个帖子中的一些想法: