我想从新线程开始播放广播。
这是我试过的:
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();
但是当然我需要背景......这不行。 我该怎么办呢。
答案 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);
希望,这可以回答你的问题!