1

この非常に単純なコード例では、メッセージがときどき失われます。ここで何が問題なのですか?

public class AndroidTesterActivity extends Activity {
   private static final int END = 500000;
   private static int i = 0;
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      i=0;
   }

   @Override
   public void onResume()
   {
      super.onResume();
      while(i < END)
      {
         Log.d("x", ""+i++);
      }
      Log.e("x", "END");
   }
}

たとえば、139371 と 140001 の 2 つの連続したログ メッセージが表示されます。つまり、630 個のメッセージがiカウントアップされているにもかかわらず、単純に失われますか? iログを書き込まずにカウントするにはどうすればよいですか? 他の誰かがすでに同じ問題を抱えていた場合、私はすでに検索しましたが、何も見つかりませんでした。

助けてくれてありがとう


ビューでパスと URL がどのように作成されているかわかりませんが、 baseUrl ヘルパーを使用していますか? $this->baseUrl( [ファイル] )

4

1 に答える 1

2

根拠のない推測: Log クラスはすべてを直接プッシュするわけではなく、特定の条件下で収集してプッシュすると思います。ループが非常に高速になるため、状況によっては、ログ バッファー (またはその他のもの) がフラッシュされる前に上書きされる可能性があります。

私はスレッドでそれを作成しsleep()、その間にいくつかのミリ秒を呼び出しようとします。おそらく、これを再現するか、この動作が消える値を見つけることができます。

于 2012-04-04T08:46:34.857 に答える