-1

アプリの実行中にスレッドを使用してコードを継続的に実行し、提供される情報を使用してアプリの UI を定期的に更新するにはどうすればよいですか。

具体的には、スレッドは座標を見つけるためにテキスト ファイルを検索するコードを実行し、その座標は UI の PNG にプロットされます。これは、毎秒、おそらく0.5秒ごとに自動的に更新され、画像をクリアしてからポイントを再描画します。

最初にスレッドを設定し、次にスレッドから UI に情報を送信して更新するにはどうすればよいですか?

サンプルコードはどれも素晴らしいものであり、サンプルコードを提供する情報です。現時点では最善の方法を試しているわけではなく、一緒にハックしようとしているだけなので、これを行う簡単で迅速な (しかしひどい) 方法を知っている場合は、共有することを恐れないでください.

4

4 に答える 4

0

これはあなたを助けるかもしれません...

//作成時

スレッド currentThread = new Thread(this); currentThread.start();

作成後

public void run() {
    try {
        Thread.sleep(4000);

        threadHandler.sendEmptyMessage(0);
    } catch (InterruptedException e) {
        //don't forget to deal with the Exception !!!!!
    }
} 

private Handler threadHandler = new Handler() {
    public void handleMessage(android.os.Message msg) {      


        Intent in = new Intent(getApplicationContext(),****.class);
        startActivity(in);

    }
};  
于 2013-09-12T11:11:47.713 に答える
0

これは非常に一般的なシナリオであり、質問に対する単純な回答の範囲をはるかに超えています。

2 つの便利なリンクを次に示します。

http://developer.android.com/guide/components/processes-and-threads.html http://www.vogella.com/articles/AndroidBackgroundProcessing/article.html

そして、もっとたくさんあります。

出発点として、2 つの異なるアプローチを次に示します。

  1. スレッドから GUI を更新します。UI スレッドとの同期のみが必要です。Activity をスレッドに渡します。次のメソッドが提供されます: runOnUiThread

  2. コールバックを提供するインターフェイスを定義し、呼び出し元の ui クラス (アクティビティ) にインターフェイスを実装させ、それをリスナーとしてスレッドに登録します。その後、必要なときにいつでもコールバックを呼び出すことができます。同期しないでください

于 2013-09-12T11:14:46.350 に答える
0

サービス(または IntentService - http://developer.android.com/guide/components/services.html)をバックグラウンド作業に使用し、BroadcastReceiver を使用してサービスから UI スレッドを更新してみてください。

于 2013-09-12T11:15:55.623 に答える