Android обновляет пользовательский интерфейс из обработчика каждую секунду

Мне нужна небольшая помощь в обновлении моего пользовательского интерфейса из Runnable / Handler каждую секунду. Я использую этот код:

Runnable runnable = new Runnable() {
        @Override
        public void run() {
                handler.post(new Runnable() {
                    @Override
                    public void run() {

                        prBar.setProgress(myProgress);
                        y = (double) ( (double) myProgress/ (double) RPCCommunicator.totalPackets)*100;
                        txtInfoSync1.setText(Integer.toString((int)y) + "%");
                        prBar.setMax(RPCCommunicator.totalPackets);

                        int tmp = totalBytesReceived - timerSaved;
                        Log.w("","totalBytesReceived : "+totalBytesReceived + " timerSaved : "+timerSaved );
                        Log.w("","tmp : "+tmp);

                        if (avgSpeedCalc.size() > 10)
                        {
                            avgSpeedCalc.remove(0);
                        }

                        avgSpeedCalc.add(tmp);

                        int x = 0;

                        for (int y=0;y<avgSpeedCalc.size();y++)
                        {
                            x += avgSpeedCalc.get(y);
                            Log.d("","x : "+x);
                        }

                        x = Math.round(x/avgSpeedCalc.size());
                        Log.e("","x : "+x);

                        timerSaved = totalBytesReceived;
                        txtSpeed.setText(Integer.toString(x));

                    }
                });
        }
    };

Я пробовал с handler.postDelayed (runnable, 1000); в onCreate () , но runnable никогда не запускается. Или даже если я попробую с помощью runnable.run (); , он все равно не работает.

Есть идеи, как мне запустить runnable / handler и обновлять пользовательский интерфейс каждую секунду?

9
задан Android-Droid 6 February 2012 в 12:10
поделиться