从runnable发送广播意图

时间:2010-07-10 07:32:19

标签: android multithreading broadcast

我想从新线程开始播放广播。

这是我试过的:

        new Thread(new Runnable() {
        public void run() {
            //some other code for timing.
            // ..
            // ..
            Intent broadcastIntent = new Intent();
            broadcastIntent.setAction(Intent.ACTION_ANSWER);
            this.sendBroadcast(broadcastIntent);
        }
    }).start();

但是当然我需要背景......这不行。 我该怎么办呢。

2 个答案:

答案 0 :(得分:3)

我通常做的事情,虽然相当骇人听闻,但如下:

final Context mCtx = this;
new Thread(new Runnable() {
    public void run() {
        //some other code for timing.
        // ..
        // ..
        Intent broadcastIntent = new Intent(mCtx, TargetClass.java);
        broadcastIntent.setAction(Intent.ACTION_ANSWER);
        this.sendBroadcast(broadcastIntent);
    }
}).start();

另外,请记住在Intent构造函数中包含目标Java类。

希望它有所帮助!

答案 1 :(得分:-3)

我也遇到了这个问题。

这是我的解决方案。您要在其中实现此应用程序的应用程序必须具有活动。 因此,在该Activity中,创建一个自身的静态变量并将其分配给它。

例如:

public class MyActivity extends Activity {
    static MyActivity thisActivity = this;
    //rest of the code goes here
}

现在,在线程中,执行以下操作:

MyActivity.thisActivity.sendBroadcast(myintent);
希望,这可以回答你的问题!