0

android.developer のドキュメントで彼らが言った理由を誰か教えてもらえますか :just sleep for 30 seconds.

そして、15 * 1000 を入れます。これは 30 秒ではなく、15 だけです。

 Runnable mTask = new Runnable() {
                public void run() {
                    // Normally we would do some work here...  for our sample, we will
                    // just sleep for 30 seconds.
                    long endTime = System.currentTimeMillis() + 15*1000;
                    while (System.currentTimeMillis() < endTime) {
                        synchronized (mBinder) {
                            try {
                                mBinder.wait(endTime - System.currentTimeMillis());
                            } catch (Exception e) {
                            }
                        }
                    }

                    // Done with our work...  stop the service!
                    MyAlarmService.this.stopSelf();
                }
            };

ここ

4

2 に答える 2

1

それはおそらく 30 秒に設定されていましたが、テストとデバッグのサイクル中に誰かが長い間待つのにうんざりしたため、コメントを短くしましたが、コメントを変更することはありませんでした。

于 2012-04-29T16:54:10.027 に答える
1

説明的な変数名を使用したほうがよいコードを文書化するときに、落とし穴の 1 つを目にしています。私の推測では、値を 15 秒に変更するときにコメントを更新するのを忘れていたのでしょう。

個人的には、通常、定数変数を導入します。

private final static int 15_SECONDS = 15 * 1000;

または代わりに使用

private final static int SECONDS = 1000;

そしてコードでの使用

long endTime = System.currentTimeMillis() + 15_SECONDS;

またはそれぞれ

long endTime = System.currentTimeMillis() + (15 * SECONDS);

そうすれば、コードが何をするのかが明確になり、変数名を変更するのは覚えやすいので、値を変更することにした場合も明確になります。

于 2012-04-29T18:15:21.567 に答える