Я создаю небольшое приложение и хочу отслеживать используемые ресурсы (периодически отслеживать использование памяти приложением (каждые 60 секунд) и сохранять его в базе данных SQLite в виде отчета истории).
затем я хочу отобразить сохраненную информациюв обзоре диаграмм, который демонстрирует использование памяти за выбранный период времени (последний час, последние 24 часа, последние 7 дней, последние 30 дней).
следующий код вычисляет использование памяти
public class ResourcesUsageRunnable implements Runnable {
//var running to start run the thread or stop it by set its value to false
private static volatile boolean running = true;
private Context context;
public ResourcesUsageRunnable(Context context) {
this.context = context;
}
@Override
public void run() {
while (running) {
//calculate memory usage using Runtime instance
final Runtime runtime = Runtime.getRuntime();
final long usedMemInMB = (runtime.totalMemory() - runtime.freeMemory()) / 1048576L;
final long maxHeapSizeInMB = runtime.maxMemory() / 1048576L;
final long availHeapSizeInMB = maxHeapSizeInMB - usedMemInMB;
final long totalMemory=runtime.totalMemory()/ 1048576L;
final long freeMemory=runtime.freeMemory()/ 1048576L;
//create instance from MemoryMonitoring to set the memory usage value and store it in SQLite table
MemoryMonitoring memoryMonitoring = new MemoryMonitoring(totalMemory, freeMemory, usedMemInMB, maxHeapSizeInMB, availHeapSizeInMB, Common.getTimeInSecond());
//insert into SQLite MemoryMonitoring table
new InsertAsyncTask(context).execute(memoryMonitoring);
//Log.d("TTTTTTTTTTT",memoryMonitoring.getFreeMemory()+"");
//sleep the thread for 60 second
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
//start working
public static void startThread() {
running = true;
}
//stop working
public static void stopThread() {
running = false;
}
}
Моя проблема заключается в том, как реализовать этот процесс вычисления памяти, отображения в диаграмме и сохранения в SQLite в дизайне шаблонов MVP. Я новичок в MVP, в этой задаче меня немного смутило