- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:JAVAのソースについて)
JAVAのソースについて
このQ&Aのポイント
- JAVAのソースについて
- 独学でandroidを勉強しています。タイマーのソースを見ていたのですが、何故この記述になるか点でさっぱりわかりませんどなたか分かりやすく教えてください。特に「 timer.schedule( new TimerTask() {~」の部分が分かりません。もし出来るのならば分かりやすく分解して書きたいのですが可能でしょうか?お願いします。
- 独学でandroidを勉強している方がタイマーのソースコードでつまずいているようです。具体的には「timer.schedule( new TimerTask() {~」の部分が分かりません。質問者さんは分かりやすく分解して書いて欲しいとおっしゃっています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
既にANo.1の方がヒントを出していますが、timer.schedule()の部分を分解して書くには下記のように新しいクラスを2つ定義する必要があります。 class RunnableX implements Runnable { public void run() { second++; 中略 } } class TimerTaskY extends TimerTask { public void run() { handler.post(new MyRunnable()); } } timer.schedule(new TimerTaskY(), 1000, 1000); ただし、RunnableXの定義からsecond, minute, hourを、TimerTaskYの定義からは変数handlerをアクセスできなければいけません。 RunnableXやTimerTaskYをプログラム中の他の場所で使うことがないなら無名クラスを使って書いた方が簡潔に記述できますが、どちらが読みやすいかは好みの問題です。
お礼
分かりやすく説明していただいてありがとうございます。 何とか理解できそうです。 またよろしくお願いします。