목록Android (24)
낭만 프로그래머
Android에서는 메인 쓰레드는 UI 관련하기 때문에 네트워크 관련한 작업을 할 수 없다. 때문에 별도의 쓰레드에서 작업을 해야 한다 private class DrawUrlImageTask extends AsyncTask { ImageView ivSample; public DrawUrlImageTask(ImageView ivSample) { this.ivSample = ivSample; } protected Bitmap doInBackground(String... urls) { String url = urls[0]; Bitmap bitmap = null; InputStream in = null; try { in = new java.net.URL(url).openStream(); bitmap = Bitm..
서비스를 이용하여 Widget을 업데이트 하는 기능을 개발하였다. 하지만 API 26 이상으로 compileSdkVersion 과 targetSdkVersion을 26 으로 올리고 난 이후 부터 java.lang.IllegalStateException 가 발생하기 시작해서 JobIntentService 를 사용해서 Background 작업 하는 것으로 수정 하였다 1. JobIntentService를 상속하여 Service 파일 생성 public class Update2x3Service extends JobIntentService { static final int JOB_ID = 1001; static void enqueueWork(Context context, Intent work) { enqueueW..
All com.android.support libraries must use the exact same version specification (mixing versions can lead to runtime crashes) 와 같은 메세지가 발생하는 이유는 각 라이브러리 간에 버전이 문제인것 같다. Support 라이브러리는 명시적으로 버전을 입력 해야 한다고 한다. 만일 아래와 같이 com.android.support:appcompat-v7:26.1.0 가 문제가 발생한다고 가정 했을 경우[Before]dependencies { implementation 'com.google.android.gms:play-services-base:11.6.2' implementation 'com.google.andr..
1. 복사하기ClipboardManager clipboard = (ClipboardManager)getSystemService(Context.CLIPBOARD_SERVICE); ClipData clip = ClipData.newPlainText("복사할 데이터"); clipboard.setPrimaryClip(clip); 2. 붙여넣기ClipboardManager clipboard = (ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE); String pasteData = ""; // 클립보드에 데이터가 없거나 텍스트 타입이 아닌 경우 if (!(clipboard.hasPrimaryClip())) { ; } else if (!(clipboard...
1. build.gradle 에 추가implementation 'com.fasterxml.jackson.core:jackson-core:2.9.7' implementation 'com.fasterxml.jackson.core:jackson-annotations:2.9.7' implementation 'com.fasterxml.jackson.core:jackson-databind:2.9.7' 2. Object 또는 List → JSONList webSiteModels = handler.selectModelList(ModelType.WEB_SITE); ObjectMapper mapper = new ObjectMapper(); try { //파일로 저장 mapper.writeValue(new File("c:\..
많은 경우는 아니지만 가끔식 Fragment 에서 Activity를 호출후 그 결과를 받고 싶을 때가 있다. 하지만 Fragment에서 startActivityForResult를 실행했을 경우 자신의 onActivityResult 로 실행되는 것이 아니라 Fragment를 담고 있는 Activity의 onActivityResult로 호출 되어 진다.broadcast로 사용하는 방법이 있지만 이번에는 라이브러리를 이용한 다른 방법을 소개한다.바로, Otto 를 사용하는 것이다 (http://square.github.io/otto) https://github.com/NewLand-Ju/OttoStudy/tree/master/app/src/main/java/judh/developer/ottostudy http..
1. Git for Windows 설치 : https://git-scm.com/download/win 에 접속하여 자신의 OS에 맞는 파일 설치 2. Android Studio 에 Git 설정 2.1. File - Settings 에서 Version Control - Git 으로 들어가서 위에서 설치한 Git 폴더의 git.exe를 패스 설정함 2.2. File - Settings 에서 Version Control - GitHub 로 들어가서 아이디/패스워드를 입력 후 테스트 2.3. Git 사용자 추가 설정 3. Android Studio에서 기존 프로젝트를 GitHub로 올리기 3.1. VCS - Import into Version Control - Share Project on GitHub 클릭 3..
● 에러 메세지 - Android에서 라이브러리를 많이 사용하다 보면 메소드 갯수가 64K를 넘는 경우 발생하는 에러 메세지Error:The number of method references in a .dex file cannot exceed 64K.또는Error:Execution failed for task ':app:transformClassesWithDexForRelease'. ● 첫 번째 해결 방법 - 필요 없는 라이브러리를 제거 하자 (참고로 우리는 중복되게 사용하는 경우도 있음) ● 두 번째 해결 방법 - 참고 : https://developer.android.com/studio/build/multidex.html 1. build.gradle 파일 수정 - 기본적으로 sdk 컴파일 관련 버전은..