이 블로그 검색

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() 과 같은 쓰레드 관련 메서드들이 무용지물이 된다.