dima_meln
@dima_meln
Студент, Java Junior

Как обновить данные в activity Android?

Всем доброго времени суток, не судите строго за мой возможно глупый вопрос, так как еще учусь. Разрабатываю приложение для тестирования Android смартфона, столкнулся с такой проблемой, не могу сделать обновление данных (например обновление частоты, нагрузки). Обновление для батареи сделал через BroadcastReceiver, что б обновляло по смене состояния батареи.
BroadcastReceiver receiver = new BroadcastReceiver() {
            @Override
            public void onReceive(Context context, Intent intent) {
                battV.setText("");
                battV.append("\nМаксимальне значення: " + intent.getIntExtra(BatteryManager.EXTRA_SCALE, -1) + "%");
                battV.append("\nПоточне значення: " + intent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1) + "%");
                battV.append("\nТемпература: " + (float) intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE, -1) / 10.0f + "°C");
                battV.append("\nНапруга: " + (float) intent.getIntExtra(BatteryManager.EXTRA_VOLTAGE, -1) / 1000.0f + "V");
                battV.append("\nТехннологія: " + intent.getStringExtra(BatteryManager.EXTRA_TECHNOLOGY));
                battV.append("\nСтан: " + Func.batteryHealth(intent.getIntExtra(BatteryManager.EXTRA_HEALTH, -1)));
                battV.append("\nСтатус: " + Func.batteryStatus(intent.getIntExtra(BatteryManager.EXTRA_STATUS, -1)));
                battV.append("\nДжерело: " + Func.batteryPlugged(intent.getIntExtra(BatteryManager.EXTRA_PLUGGED, -1)));
            }

        };
        registerReceiver(receiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));

Но для процесора никак не получаеться. Вот клас
public class Cpu extends Activity {
    TextView cpuV = null;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cpu);
        cpuV = (TextView) findViewById(R.id.cpuV);

        
            Frequency su = new Frequency();
            cpuV.setText("");
            try {
                cpuV.append("\nПоточна частота: " + (double) (su.getCPUFrequencyCurrent() / 1000) + "MHz");
                cpuV.append("\nЧастота: " + (double) (su.getCPUFrequencyMin() / 1000) + " - ");
                cpuV.append((double) (su.getCPUFrequencyMax() / 1000) + "MHz");
                cpuV.append("\nМасштабування частоти: " + (double) (su.getCPUFrequencyMinScaling() / 1000));
                cpuV.append(" - " + (double) (su.getCPUFrequencyMaxScaling() / 1000) + "MHz");

                cpuV.append("\nВикористання: " + new Func().readUsage() * 100.0f + "%\n");
                cpuV.append(new Func().getCPUinfo());
            }
            catch (Exception e) {}
    }
}

Подскажите пожалуйста, буду очень благодарен)
  • Вопрос задан
  • 1580 просмотров
Решения вопроса 1
@onepavel
Консультация и разработка мобильных приложений
обновлять данные можно либо по внешнему событию, либо самому создавать события.
создавать события, самое простое, запилить таймер и сходу я могу придумать 7 способов
1 handler.post
2 executors.scheduledtreadpool
3 timer task
4 alarm manager
5 jobscheduler
6 broadcast time tick
7 самому запилить луппер
тут я привел в пример что можно использовать, не касаясь темы корректности использования
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы