본문 바로가기

개발/안드로이드271

Concurrent Database Access 출처 - http://aroundck.tistory.com/2781 [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 에.. 2015. 1. 5.
젤리빈 4.1에서 추가된 다양한 Notification 띄우기 출처 - http://whdghks913.tistory.com/457 #26 젤리빈 4.1에서 추가된 다양한 Notification 띄우기 안녕하세요 이번 강좌는 매우 깁니다만 매우 재밌는 내용이므로 꼭 정독해 주세요 그리고 PC버전과 또는 원본 티스토리 글에서 봐주시길 부탁드립니다 절대 모바일로 보지 말아주세요 왜냐면 가독성이 매우 떨어집니다 26. Notification 띄우기 26-1 구글 2012 IO를 아시나요? 2012 구글 IO 기억히시나요? 젤리빈에 대해 발표되면서 향상된 Nofification에 대한 언급이 있었습니다 오늘 배울 내용은 이 구글 IO와 관련이 매우 깊습니다 추가된 API도 사용할것이기 때문입니다 그럼 지금부터 배워보도록 하겠습니다 26-2 Notification에 관한 설.. 2014. 4. 22.
Volley 출처 - https://gist.github.com/benelog/5981448 안드로이드 개발에서 많은 비중을 차지하는 UI패턴은 ListView에서 여러 이미지를 보여주는 Activity입니다. 전형적인 흐름을 정리하면 아래와 같습니다. ​1. 목록조회 API호출 ​2. API를 파싱하고 ListView에 데이터를 보여 줌. ​3. 각 아이템마다의 이미지 주소로 다시 서버를 호출 ​4. 이미지를 디코딩하고 ImageView에서 보여줌. 흔한 패턴이지만, 각종 예외 상황까지 감안해서 이 흐름을 처리하는데에는 많은 코드가 들어갑니다. API호출을 위한 쓰레드풀 관리나 API호출을 한 후에 화면 회전과 전환이 일어났을 때의 호출 취소, Activity의 Null pointer 체크, ImageView의 재.. 2014. 4. 3.
안드로이드 이미지로드를 위한 오픈소스 라이브러리 출처 - http://www.kmshack.kr/208 안드로이드에서 URL이미지 로딩을 위해 잘만들어진 오손소스 라이브러리를 소개한다. Android Universal Image Loader Android Universal Image Loader는 많은 앱에 적용되어 있고, Executor, 스레드 풀 크기, , Bitmap Options 등 변경할 수 있는 옵션이 있다. android.app.Application 클래스를 상속한 클래스에서 ImageLoader 객체를 초기화한 후 각종 옵션을 설정하고 사용할 수 있다. AQuery AQuery는 XML 파싱과 권한 관리 등 다양한 기능을 가진 라이브러리이나 이미지 로딩과 캐시 기능도 제공하기 때문에 분석 대상으로 선정했다. jQuery와 비슷한 메서드.. 2014. 4. 3.
SMS, MMS보내기 출처 - http://bulma.tistory.com/12 SMS private void SendSMS(String phonenumber, String message) { SmsManager smsManager = SmsManager.getDefault(); String sendTo = phonenumber; String myMessage = message; smsManager.sendTextMessage(sendTo, null, myMessage, null, null); Toast.makeText(SMSSender.this, "전송되었습니다.", Toast.LENGTH_SHORT).show(); finish(); } MMS private void SendSMS(String phonenumber, Str.. 2014. 3. 19.
@SuppressLint("NewApi") 출처 - http://nsstbg.tistory.com/13 @SuppressLint("NewApi")란 무엇인가? Android lint tool(이하 린트)이란 것이 있습니다. (자세한 설명은 ☞ 여기) 린트는 개발자가 완벽히 알맞은 코드나 충돌 가능성이 있는 코드를 사용할때 @SuppressLint(...)를 붙여 사용할 수 있게 해줍니다. @SuppressLint("NewApi")는 해당 프로젝트의 설정 된 minSdkVersion 이후에 나온 API를 사용할때 warning을 없애고 개발자가 해당 APi를 사용할 수 있게 합니다. 2014. 3. 19.
G2 4.4 킷캣 외장 메모리 이슈 출처 - https://medium.com/marojuns-android/59e57b9a14e7 왜 갑자기 내 앱이 SD카드에 파일을 저장 못하는거지? marojun in marojun’s Android 보통 second Sdcard는 탈착식 sdcard로 외장메모리란 용어로 사용했는데 기존에는 이곳에 많은 앱들이 별반 제약 없이 사용했으나 킷캣부터는 이 것을 허용하지 않으며 자신의 package-specific한 공간에만 퍼미션 없이 자유롭게 사용이 가능하다고 합니다.(외장/android/data/packagename/) 이 공간에 파일을 쓰실땐 해당 패스에 접근하기 위해 4.4부터 새로 제공하는 getExternalFilesDirs() 메서드를 통해서 접근하면 됩니다. 해당 메서드를 통해 전달받는 F.. 2014. 3. 18.
kitkat(4.4)에서 맞닥뜨린 이슈 및 해결 출처 - https://medium.com/marojuns-android/1ecb94c24694 1. SMS 이슈 보통 서비스에서 SMS를 보내는 기능을 사용할 경우에는 Intent.ACTION_SEND를 통해서 보내는 것이 일반적이다. 또한 코드상에서 미리 전화번호를 명시하는 것이 아니라 사용자가 직접 SMS을 보내는 화면에서 상대방의 전화번호를 입력하는게 보통이다. 그래서 개발자는 Uri.parse(“smsto:전화번호")를 사용하기보다는 Uri.parse(“sms:”)를 통하여 사용자가 직접 보낼사람을 선택하도록한다. 그러나 4.4에서는 이런방식으로 문자를 보내게되면(지금 내가 사용하는 디폴트 SMS앱은 행아웃이다.) SMS앱에서 계속 전화번호를 검색하여 무한로딩 상황에 빠지게 된다. 이에 이러한 .. 2014. 3. 18.