私は最近スレッドを使い始め、Android でのルーパー クラスの Java 実装を完成させようとしています。基本的に、スレッドをキューに入れ、ルーパー クラスによって実行される Java クラスを作成しています。コードの大部分は完成しましたが、タスクのエンキューに問題があります。
Looper クラスでは、宣言されたキューと enqueue メソッドがあります。
List<Runnable> queue;
public synchronized void enqueue(Runnable runnable) {
queue.add(runnable);
notify(); // signal a waiting thread
}
次に、TaskManager という別のクラスを作成して、タスクをキューに追加しました。電話するとエラーが表示されます:
loop.enqueue(new Task());
Task() が runnable を実装し、その run() メソッドで 2 つの整数を一緒に追加するだけの場合...これは単なるテストです。
私が受け取るエラーは次のとおりです。
Exception in thread "Thread-0" java.lang.NullPointerException
at Looper.enqueue(Looper.java:20) (this is the queue.add(runnable))
at TaskMaker.run(TaskMaker.java:16) (this is the loop.enqueue(new Task())
私は明らかに何か間違ったことをしており、これを正しく実装していません...どうすればいいですか? タスクをキューに入れる方法は正しいですか? 助けてくれてありがとう!