본문 바로가기
[android] SQLiteDatabase 와 SQLiteOpenHelper Test [android] SQLiteDatabase 와 SQLiteOpenHelper Test -DB File delete 를 수행한 다음 getWritableDatabase 나 getReadableDatabase 를 호출하면 SQLiteOpenHelper 의 onCreate 가 재수행된다. (DB file 의 실 존재 유무를 확인한다는 얘기렸다?) -이미 Close 된 DB 에 뭔가를 수행하려 한다면 아래와 같은 IllegalStateException 이 발생한다java.lang.IllegalStateException: attempt to re-open an already-closed object: SQLiteDatabase: /data/user/0/com.ck.prodtest/databases/myDB -b.. 2019. 1. 10.
Efficient Android Threading #8 AsyncTask 로 백그라운드 태스크를 UI 스레드에 묶기 Efficient Android Threading #8 AsyncTask 로 백그라운드 태스크를 UI 스레드에 묶기 이 글은 Efficient Android Threading 의 일부 내용만 발췌한 내용입니다.자세한 내용은 책을 구입해서 보세용.10.1. 기본 사항 -AsyncTask 는 실행이 완료되면 다시 실행할 수 없다.즉, execute 메서드는 일회성의 동작이고 스레드의 동작처럼 AsyncTask 인스턴스마다 오직 한 번만 호출할 수 있다. -doInBackground 작업이 끝나면 onPostExecute 혹은 onCancelled 둘 중 하나만 수행된다. ** 10.1.1 생성과 시작 -AsyncTask 의 기본 생성자는 UI 스레드에서 호출되어야 한다.젤리빈 이전의 플랫폼에서 UI 스레드가.. 2018. 3. 24.
[Android] java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called. [Android] java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called. android 2.3 에서는 setAdapter 가 수행된 이후에 addHeaderView 가 수행되면 아래와 같은 exception 을 내뱉는다. java.lang.IllegalStateException: Cannot add header view to list -- setAdapter has already been called. 해결책은 setAdapter( null ); 을 해주고, addHeaderView 를 호출한 다음 다시 본래의 adpater 를 set 해주던가, 아니면 headerview 를 .. 2017. 5. 17.
[Effective Java] 표준 예외를 사용하자 [Effective Java] 표준 예외를 사용하자 - 기본 예외를 재사용하면 여러 가지 장점이 있다. 프로그래머들이 이미 익숙해진 내용과 일치하기 때문에 우리 API 를 배우고 사용하기 쉽게 해준다. 생소한 예외를 사용하지 않으므로 코드를 이해하기 쉽다. 메모리 사용도 적게하고 클래스를 메모리로 로딩하는 시간도 줄어든다. - 자주 재사용되는 형태의 exception 은 IllegalArgumentException, IllegalStateException, NullPointerException, UnSupportedOperationException 등이 있다. API, Effective JAVA, IllegalArgumentException, illegalstateexception, NullPointer.. 2017. 2. 24.
[android] Concurrent Database Access [android] Concurrent Database Access https://github.com/dmytrodanylyk/dmytrodanylyk/blob/gh-pages/articles/Concurrent%20Database%20Access.md 새로운 SQLiteOpenHelper 를 만들면, 이것은 새로운 database connection 을 만드는 것이다.다른 connection 에서 동시에 한 db 에 write 를 시도하면, 한쪽은 lock 문제로 fail 한다. 여러 Thread 에서 동시에 db 작업을 할 경우에는 반드시 한 connection 을 사용하도록 유도해야 한다. 이 때 주의할 것은 각각의 thread 에서 db.close() 를 호출할 경우 한 connection 의 ge.. 2014. 8. 17.
Android Support Library 를 안정감 있게 사용하는 3가지 방법. Android Support Library 를 안정감 있게 사용하는 3가지 방법 출처 : http://www.crashlytics.com/blog/3-key-ways-to-increase-android-support-library-stability/ 1. AsyncTasks and Configuration Changes AsyncTask 를 실행시킨 fragment 가 asyntask 완료 되는 시점에서 activity 로부터 detach 되어있으면 다음과 같은 에러가 발생한다. AsyncTask 가 activity 로부터 detach 되어 있는 상황은 보통 configuration change ( 대표적으로 화면 전환 ) 의 경우에 주로 발생한다. java.lang.IllegalStateExceptio.. 2014. 5. 16.
java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4030500 but found 0. You must have the following declaration within the <application> element: <meta-data android:name="co.. java.lang.IllegalStateException: The meta-data tag in your app's AndroidManifest.xml does not have the right value. Expected 4030500 but found 0. You must have the following declaration within the element: 2013. 11. 14.
[android] ThreadSafeClientConnManager 연결된 HttpClient 만들기 ThreadSafeClientConnManager 연결된 HttpClient 만들기 - 일반적인 ClientConnManger 가 연결된 DeafultHttpClient 를 사용하게 되면, 연결한 Connection 이 마무리 되기 전에 동일한 DefaultHttpClient instance 를 사용하여 connection 을 시도할 경우, IllegalStateException 이 발생하곤 한다. - 이를 해결하기 위해서는 일반적인 ClientConnManger 대신에 ThreadSafeClientConnManger 를 연결해주면 된다. public static final int MAX_TOTAL_CONNECTION = 20; public static final int MAX_CONNECTIONS_PE.. 2012. 12. 10.
반응형