이 블로그 검색

2014년 11월 22일 토요일

Java 날짜 및 시간 처리


Calendar today = Calendar.getInstance();

int year = today.get(Calendar.YEAR);
int month = today.get(Calendar.MONTH);
int day = today.get(Calendar.DAY_OF_MONTH);
int hour = today.get(Calendar.HOUR_OF_DAY);

today.setTime(new Date(System.currentTimeMillis()+ 3600000));
// 지금으로부터 1시간 후로 시간 세팅

2014년 10월 20일 월요일

Android Library Project 추가

Android 에 외부 library를 추가하는 방법은
1. 일반 jar 라이브러리 파일을 추가하는 법
2. 외부 project를 통으로 추가하는 법

이렇게 2가지가 있다.
이중 jar파일 추가는 아래의 방법과 같이 하고,


프로젝트를 통체로 추가하는 방법은(라이브러리 프로젝트라 한다.)
아래와 같이 한다.


굳이 이렇게 써 놓는 이유는 2번의 라이브러리 프로젝트를 1번의 방법으로 추가하면
몬가 추가된 것처럼 빌드 패쓰에는 정상적으로 잡히는 데, 결국 읽어 오지 못해 에러를 뿜는다..

(이러한 이유로 "왜 안되지?" 하면서 삽질을 반드시 하게 된다.)

그리고 이렇게 라이브러리 프로젝트로 추가된 프로젝트 jar 는 반드시
이클립스의 "Android Dependencies" 라는 폴더 아래에 있어야 한다.






2014년 7월 24일 목요일

SQLiteException 이 catch가 안될 때...

키 값이 같은 값은 insert 가 안되고
SQLiteException 발생해
catch 문에 handling 하는 로직을 넣으려고 하였으나...
왠일인지 절대 잡히지 않는다...
문제는...

아래의 insert 메서드를 쓰면 안되고,

try {
   db.insert(TABLE_USERvalues); 
    isInsertSucceed = true;

} catch (SQLiteException e) {
    isInsertSucceed = false;


}

insertOrThrow() 메서드를 써야한다..  (쉣~!)

try {
   db.insertOrThrow(TABLE_USERvalues); 
    isInsertSucceed = true;

catch (SQLiteException e) {
    isInsertSucceed = false;


}

2014년 7월 22일 화요일

이미지 처리.. 사각틀 안에 이미지, 그냥 이미지만 나오게..

이미지 처리...
png 와 jpg ... 의 차이를 모르겠다.


bitmap.compress(CompressFormat.JPG, 100, out);

하니까.. 
원래 동그란 이미지인데
증명 사진 처럼 네모난 사각 틀 안에 동그란 이미지가 들어가고

bitmap.compress(CompressFormat.PNG, 100, out);

하니...
원하는 형태로 사각 틀 없이 동그란 이미지만 나왔다..

무슨 차이일까???

2014년 7월 10일 목요일

Thread Join() 함수

멀티 쓰레드 처리를 해야 될 때 서브 쓰레드에서 처리된 결과 값을 메인 쓰레드가 받아서 처리를 해야 되는 경우가 종종 있다.
 이럴 때 문제가 되는 것은 메인 쓰레드와 서브 쓰레드가 동시에 병렬로 처리가 되기 때문에 서브 쓰레드에서 결과 값을 받기도 전에 메인 쓰레드에서 진행이 되어 원하는 값을 set 하지 못하는 경우가 있다.  (보통 이런 경우 Null 이나 빈값이 많이 들어간다.)

 이 경우 메인 쓰레드를 서브 쓰레드가 연산이 끝날때까지 hold(정지) 시켜 놓아야 되는데, 그럴 때 사용하는 것이 join() 메서드이다.

ex)

mThread.start();   // Thread 시작

Log.d("meme", "  filteredThBoxList => " + filteredThBoxList.size());

try {
   mThread.join();    // join() 을 사용하면 서브 쓰레드가 끝날때까지 메인 쓰레드는 대기한다.
} catch (InterruptedException e) {
   // TODO Auto-generated catch block
e.printStackTrace();
}


return filteredThBoxList;   // filteredThBoxList 이 변수에 mThread에서 처리한 결과 값을 넣고 리턴을 해야 된다.

[Android] 무분별한 Handler 사용 자제

안드로이드 쓰레드 처리에서
UI 처리 아닌 이상에 쓸데 없이 핸들러로 데이터를 넘겨서 처리할 필요 없다.
Main Thread에서 해야 될 UI 처리인 경우만 Handler를 사용한다.

안그러면 Thread.join() 과 같은 쓰레드 관련 메서드들이 무용지물이 된다.