2

新しいスレッドが開始されたからブロードキャストを送信したい。

これは私が試したものです:

        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();

しかしもちろん、コンテキストが必要です..これは機能しません。どうすればこれを処理できますか。

4

2 に答える 2

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();

また、ターゲットJavaクラスをIntentコンストラクターに含めることを忘れないでください。

それが役に立てば幸い!

于 2010-07-10T07:57:44.767 に答える
-3

私もこの問題に直面しました。

これが私の解決策です。これを実装するアプリケーションにはアクティビティが必要です。そのため、そのアクティビティで、それ自体の静的変数を作成し、これを割り当てます。

元:

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

次に、スレッドで次のようにします。

MyActivity.thisActivity.sendBroadcast(myintent);

希望、これはあなたの質問に答えます!

于 2012-06-06T09:09:47.950 に答える