アンドロイドの研究ノートメカニズム1を取り扱うハンドラメッセージを

サブスレッド(別名ワーカースレッド)の複数; andorid過程で少なくともスレッドがあり、一般的には、メインスレッド(また、UIスレッド)があります。
セキュリティ上の理由から、サブスレッドを動的にメインスレッドでコンポーネントの属性値を変更することはできません:アンドロイドでのルールがあります。
しかし、いくつかの時間のかかる操作を実行するために、子スレッドを置く彼らはしばしば、メインスレッドは、UIを更新するために終了しますので、ハンドリング機構ハンドラメッセージがあります。
ハンドラは子スレッドのsendMessage()法などにより、転写ステーションと同等であるので、メインスレッド更新子スレッドを達成するために、メインスレッドに応じて送信され、関連するメッセージのハンドラを処理し、オブジェクト・ハンドラにメッセージを送信します。
次の書き込みデモ:
1.レイアウト、TextViewのとボタン、ボタンクリックリアライズ効果のTextViewの子スレッドの値の変化。示すよう
ここに画像を挿入説明
2.MainActivity(パケットハンドラOSをインポートすることに留意されたい)に

 protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        final TextView textView= (TextView) findViewById(R.id.text);
        Button button= (Button) findViewById(R.id.button);
        final Handler handler=new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                if (msg.what==123){
                    textView.setText("sb");
                }
            }
        };
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                new Thread(new Runnable() {
                    @Override
                    public void run() {
                        handler.sendEmptyMessage(123);
                    }
                }).start();
            }
        });
    }
公開された28元の記事 ウォン称賛15 ビュー7840

おすすめ

転載: blog.csdn.net/qq_34423913/article/details/104525561