0

私はアンドロイド開発でルーパーとハンドラークラスを使用する方法を学んでいます http://developer.android.com/reference/android/os/Looper.htmlアンドロイド開発 で与えられた例は、使用法とどのように使用しますか。Looper 内に Handler を追加する方法と、Looper を呼び出してループする方法がわかりません。利用可能な場合は、誰でも簡単な使用例を教えてください。

public class LooperTest extends Activity{

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
}
private class LooperTesting extends Thread
{
    public Handler handler;
    public void run()
    {
        Looper.prepare();
        handler = new Handler()
        {
            public void handlerMessage(Message msg)
            {
                    // do something
            }
        };
        Looper.loop();

    }
}
}
4

2 に答える 2

0

あなたの例では、ルーパーでスレッドのみを定義しました。メッセージを投稿する前に、関連するルーパーでスレッドを開始する必要があります。何をしなければならないかを説明するために、あなたの例にいくつかのコードを追加しました:

public class LooperTest extends Activity{

    LooperTesting mBgThread;

    public void onCreate(Bundle savedInstanceState)
    { 
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        mBgThread = new mBgThread();

        // Start the thread. When started, it will wait for incoming messages.
        // Use the post* or send* methods of your handler-reference.
        mBgThread.start();
    }

    public void onDestroy() {
        // Don't forget to quit the Looper, so that the
        // thread can finish. 
        mBgThread.handler.getLooper().quit();
    }

    private class LooperTesting extends Thread
    {
        public Handler handler;
        public void run()
        {
            Looper.prepare();
            handler = new Handler()
            {
                public void handlerMessage(Message msg)
                {
                    // do something
                }
            };
            Looper.loop();
        }
    }
}
于 2013-01-19T17:19:49.613 に答える
0

このリンクがあなたに役立つことを願っています

  1. リンク1
  2. リンク2
  3. リンク3
于 2013-01-16T05:09:36.247 に答える