계단 다이어트 37주차, 15.5kg 감량 체중 관련해서 마지막 업로드가 26주차 였습니다. 벌써 11주가 지났내요. 그 때부터 지금까지 아직 다이어트한 체중은 잘 유지하고 있습니다. 급하게 많이 빼지 않기 위해서 노력을 하면서 조금씩 빠지고 있습니다. 그래서 운동을 아침에만 계단오르기 100층을 진행하고 아침과 저녁에는 근력운동을 같이 병행하면서 진행하고 있습니다. 근력을 키우기 위해서 단백질을 더 먹고 덤벨 무게나 운동량을 늘릴려고 노력합니다. 식단은 하루 2끼를 먹으며 아침에는 평소대로 먹고 (9시~9시반) 저녁에는 닭가슴살 200g~300g + 계란후라이 3개 (4시~5시) 위와 같이 아침과 저녁을 먹고 별도로 야식은 먹지 않습니다. 토-일 주말에는 그냥 친구와 술 먹고 평소 먹고 싶은 것을 먹고 쉽니다. (당연히 이러면 월요일에 2.5 ~ 3kg 정도 체중이 증가 합니다.) 다만 요즘은 목요일 즘 되면 목표 체중에 도달을 하는데(2kg 조금 넘게 빠집니다.) 그러면 저녁에는 그냥 밥을 먹는 일반 식단을 해서 (다이어트 식단을 하지 않고) 체중 감소가 너무 급격하게 되는걸 막으려고 하고 있습니다. 그래도 너무 빠지면 금요일에는 운동을 쉬는 경우도 있습니다. 최근에 공복 혈당 측정을 오랜만에 해봤는데 100에 더 가깝게 측정이 되어서 다이어트 효과를 좀 보고 있는것 같습니다. (공복혈당 : 102, 2024.11 건강검진에서는 114) 11월이 1주년인데 그 때까지 꾸준히 유지하도록 하겠습니다. 시작 : 2024.11.13 기간 : 2025.7.18 (37주차) 시작 체중 : 78.5 현재 체중 : 63.0 (체중은 아침에 일어나서 밥먹기 전에 측정, 해당 주에 가장 낮은 측정값) 운동방식 : 계단오르기 난이도 : 1회 100층 횟수 : 하루 2번, 아침과 저녁 (100층 x 2 = 하루 총 20...
iOS 로 먼저 작업을 하고
안드로이드에서 작업을 하면서 iOS의 dispatch Queue 블록 코딩처럼
코드에서 바로 AsyncTask 로 백그라운드 코딩을 넣고 작업이 끝나면 mainThread 에서 나머지 ui thread 작업을 하도록 할 수 없을까 고민하다가 만든 소스
프로젝트에 GlobalThread Class 파일을 만들어서 구성을하고
아래의 사용방식으로 소스에서 바로 불러서 구성
-- GlobalThread 사용 --
GlobalThread globalThread = new GlobalThread(this, false, new Handler() { //final EchoCallBack cback = callback; public void handleMessage(Message msg) { // 각 화면에 갱신 (데이터 가져오기) 요청을 보낸다 //stopIndicatorDialog();
-- 메인쓰레드에서 하는 동작을 여기서 처리 --
} }){ @Override protected Object doInBackground(Object... params) { gLog("doInBackground 2"); -- 백그라운드 동작은 여기서 처리 --
-- 파라메터를 받아서 처리 가능 -- return super.doInBackground(params); } }; globalThread.execute(-- 여기에 복수의 데이터를 전달하면 doInBackground 에서 데이터를 받음 --);
-- GlobalThread class --
public class GlobalThread extends AsyncTask<Object, Integer, Object> {
public Context gContext = null;
public Handler handler = null;
boolean showDialog = false; // 다이얼로그 표시 여부 MyProgressDialog pdialog = null;
public GlobalThread(Context context, boolean showdialog, Handler handler) {
this.handler = handler;
gContext = context;
showDialog = showdialog;
}
public void gLog(String logMessage){
DebugLog.debug(gContext, "GlobalThread : "+logMessage);
}
private void dismissDialog(){
if(showDialog == true && pdialog != null){
pdialog.dismiss();
new WeakReference<Object>(pdialog);
pdialog = null;
}
}
private void showDialog(){
dismissDialog();
if(gContext != null && showDialog == true){
if(pdialog == null){
pdialog = MyProgressDialog.show(gContext, "", "", true, false, null);;
}
}
}
/** * AsyncTask * @param params * @return */ @Override protected Object doInBackground(Object... params) {
// 백그라운드에서 실제 해야하는 것을 이곳에 DebugLog.debug(gContext, "GlobalThread (doInBackground)");
if(params != null && params.length > 0){
return params[0];
}
return null;
}
/** * AsyncTask */ @Override protected void onCancelled() {
super.onCancelled();
}
/** * AsyncTask * @param result */ @Override protected void onPostExecute(Object result) {
// 백그라운드(doInBackground)에서 진행이 되고 실행됨 // 리턴된 갓이 파라메터로 전달
dismissDialog();
DebugLog.debug(gContext, "GlobalThread (onPostExecute)");
Message msg = this.handler.obtainMessage();
msg.obj = result;
msg.what = 0;
this.handler.sendMessage(msg);
super.onPostExecute(result);
}
/** * AsyncTask */ @Override protected void onPreExecute() {
// TODO Auto-generated method stub DebugLog.debug(gContext, "GlobalThread (onPreExecute)");
showDialog();
super.onPreExecute();
}
/** * AsyncTask * @param values */ @Override protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub DebugLog.debug(gContext, "GlobalThread (onProgressUpdate)");
super.onProgressUpdate(values);
}
}