ホームページ > Java > &#&チュートリアル > 別のスレッドから Android メインスレッドにタスクを投稿するにはどうすればよいですか?

別のスレッドから Android メインスレッドにタスクを投稿するにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-12-09 04:59:18
オリジナル
260 人が閲覧しました

How to Post Tasks to the Android Main Thread from Another Thread?

Android サービスの別のスレッドからメイン スレッドにタスクを投稿する

Android サービスでは、バックグラウンド タスクのスレッドを作成するときに、特定のタスクを投稿する必要がある場合があります。 Runnables と同様に、メインスレッドのメッセージキュー上で別のスレッドから送信されます。

これを実現するために、Android は 2 つの機能を提供します。解決策:

Context オブジェクトの使用

バックグラウンド スレッドに Context オブジェクトへの参照がある場合、次のようにメイン スレッドのハンドラーにアクセスできます。

// Get a handler that can be used to post to the main thread
Handler mainHandler = new Handler(context.getMainLooper());

Runnable myRunnable = new Runnable() {
    @Override 
    public void run() {....} // This is your code
};
mainHandler.post(myRunnable);
ログイン後にコピー

なしContext オブジェクトの使用

バックグラウンド スレッドに Context オブジェクトがない場合は、メイン スレッドに直接アクセスできます。スレッドの Looper を呼び出してハンドラーを作成します:

// Get a handler that can be used to post to the main thread
Handler mainHandler = new Handler(Looper.getMainLooper());

Runnable myRunnable = new Runnable() {
    @Override 
    public void run() {....} // This is your code
};
mainHandler.post(myRunnable);
ログイン後にコピー

これらのアプローチのいずれかを使用すると、メイン スレッドのメッセージ キューにタスクをポストし、メイン スレッドで実行されるようにすることができ、UI コンポーネントを更新したり、アプリケーションのメインリソースへのアクセスを必要とするその他の操作。

以上が別のスレッドから Android メインスレッドにタスクを投稿するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート