전체 글
-
[Android/Java] 프래그먼트(Fragment)Android/Java 2022. 4. 3. 14:41
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 분할된 화면들을 독립적으로 구성하기 위해 - 분할된 화면들의 상태를 관리하기 위해 - 액티비티가 길어지는 경우 여러 부분으로 나눠서 관리하기 쉽게 하기 위해 *프래그먼트는 항상 id 지정해 줘야 함* *프래그먼트는 항상 액티비티 위에 올라가 있어야 함* -> 프래그먼트가 제대로 동작하는 시점은 프래그먼트가 메모리에 만들어진 시점이 아닌 액티비티에 올라가는 시점 *안드로이드에서 발생하고 있는 Fragment 오류(안드로이드 버그로 추정)* -> 프래그먼트 전환 시 이전 화면이 지워지지 않고 남아 있는 문제가 생겨서 당분간 Fragment 대신 FrameLayout 사용 -> xml에서 Fragment만 FrameLayout으로 변경해주면 됨 *rep..
-
[Android/Java] 스레드(Thread)와 핸들러(Handler)Android/Java 2022. 3. 18. 13:09
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 동시 수행이 가능한 작업 단위 - 현재 수행 중인 작업 외의 기능을 동시에 처리할 때 사용 - ex) 네트워킹 수행 시 - 네트워킹의 경우 대기 시간이 길어지므로 처리와 동시에 UI도 멈춤 상태로 있게 되는 문제 발생 - 이전에는 스레드 사용을 권장사항으로 여겼지만, 현재 버전에서는 반드시 사용해야 하는 것으로 변경되었음(사용하지 않는 경우 네트워킹 기능 자체가 동작하지 않음) - 하나의 프로세스 안에서 여러 개의 작업이 동시 수행됨 - 같은 프로세스 안에서 메모리 리소스 공유하여 효율적인 처리 가능 - 단, 동시에 리소스에 접근 시 데드락(DeadLock) 발생할 수 있음 *데드락(DeadLock) - 여러 개의 스레드가 동시에 공통으로 사용하는..
-
[Android/Java] 다이얼로그(Dialog)+커스텀 다이얼로그(Custom Dialog)Android/Java 2022. 3. 12. 18:53
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - Toast 메시지처럼 일방적으로 메시지를 전달하는 것이 아닌 사용자로부터 '예', '아니오'와 같은 응답 받아 처리 - dismiss : 다이얼로그의 버튼 클릭하여 종료된 경우(안전한 종료) - cancel : 뒤로가기 버튼 눌러 종료된 경우 1. 대화상자 만들기 위한 Builder 객체 생성 AlertDialog.Builder builder = new AlertDialog.Builder(this); 2. 대화상자에서 사용할 버튼 추가 - 긍정(Positive) 버튼 추가(setPositiveButton) builder.setPositiveButton("예", new DialogInterface.OnClickListener() { @Override..
-
[Android/Java] SharedPreferences(간단한 데이터 저장)Android/Java 2022. 2. 27. 19:01
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - DB를 대신하여 간단한 데이터를 쉽게 저장할 수 있도록 함 - 아이디, 비밀번호, 사용자 이름과 같이 간단한 정보는 DB를 거칠 필요 없이 SharedPreferences로 간단하게 저장 가능 SharedPreferences preferences; SharedPreferences.Editor editor; preferences = getSharedPreferences("파일(테이블) 이름", MODE); editor = preferences.edit(); editor.putInt(KEY, VALUE); editor.commit(); - Int 이외에도 다양한 자료형 사용 가능 - commit() 대신 apply()도 가능하고 반드시 commit()..
-
[Android/Java] 스피너(Spinner)Android/Java 2022. 1. 22. 13:52
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 여러 아이템 중 하나를 선택하는 위젯 - 윈도우에서의 콤보박스에 해당 - 스피너 객체도 선택 위젯이므로 setAdapter() 메서드의 파라미터로 어댑터 객체를 전달해야 함 - RecyclerView와 달리 Spinner는 API에서 제공하는 기본 어댑터들이 있으므로 따로 어댑터를 직접 정의할 필요가 없음 ArrayAdapter adapter = new ArrayAdapter( this, android.R.layout.simple_spinner_item, items ); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(a..
-
[Android/Java] getSystemService() 메서드Android/Java 2021. 12. 22. 13:45
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] - 매개변수에 대응하는 안드로이드가 제공하는 시스템-레벨 서비스 요청 - 시스템으로부터 객체 얻을 때 사용 - 대부분 'Manager'라는 접미어 붙는 관리 매니저 객체 반환 요청하는 서비스 반환되는 객체 ACTIVITY_SERVICE 시스템 내부 액티비티 상태 파악하는 ActivityManager ALARM_SERVICE 주어진 시간에 경고 메시지(Intent) 발신하는 AlarmManager AUDIO_SERVICE 오디오 관리하는 AudioManager CONNECTIVITY_SERVICE 네트워크 연결 관리하는 ConnectivityManager DOWNLOAD_SERVICE HTTP 다운로드 작업 수행하는 DownloadManager INPU..
-
[Android/Java] 애플리케이션 기본 항목Android/Java 2021. 12. 16. 15:17
[모든 포스팅은 개인적 공부를 위해 작성된 글입니다] 1. 액티비티 2. 서비스 3. 브로드캐스트 수신자 4. 콘텐츠 제공자 - 사용자와 상호작용하기 위한 진입점 - UI를 포함한 화면 하나를 나타냄 - 액티비티는 서로 독립되어 있음 - 백그라운드에서 실행되는 구성 요소 - 오랫동안 실행되는 작업 수행하거나 원격 프로세스 위한 작업 수행 - UI 제공하지 않음 - 이벤트를 앱에 전달하도록 하는 구성 요소 - 앱이 시스템 전체의 브로드캐스트 알림에 응답할 수 있게 함 - 브로드캐스트 수신자도 앱으로 들어갈 수 있는 명확한 진입점이기 때문에 현재 실행되지 않은 앱에도 시스템이 브로드캐스트 전달할 수 있음 - 앱, 시스템 모두 브로드캐스드 발생시킬 수 있음 - 파일 시스템, SQLite, 웹 등 앱이 액세스 ..