삼성 전자에서 사용 가능한 RAM을 확인하는 앱을 만들었습니다. 값을 2 초마다 업데이트하고 싶습니다.메시지를 다시 mainthread로 보냅니다.
백그라운드 스레드에 넣고 계산 된 값을 주 스레드로 보내는 방법을 모르겠습니다. 나는 핸들러 클래스가 필요하다 생각하지만
private TextView tv;
private Handler handler;
private long availableMegs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv = (TextView) findViewById(R.id.meminfo_view);
tv.setText("TILLGÄNGLIGT RAM = " + availableMegs);
Thread t = new Thread(new Runnable() {
@Override
public void run() {
while (true) {
MemoryInfo mi = new MemoryInfo();
ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE);
activityManager.getMemoryInfo(mi);
long availableMegs = mi.availMem/1048576L;
tv.setText("TILLGÄNGLIGT RAM = " + availableMegs);
try {
Thread.sleep(2000);
} catch (InterruptedException ie) {
//...
}
}
}
});
t.start();
}
감사합니다. 그러나 내가 얻는 것은 모두 빈 화면입니다. – bjha