분류 전체보기 (100) 썸네일형 리스트형 Handler와 Looper UI 업데이트를 메인 스레드에서만 허용한다. 하지만 워커 스레드 내에서 UI 처리를 해야 한다면 해당 스레드와 UI 스레드를 이어주는 것이 handler이다. UI 작업을 UI / Main Thread에서만 하는 이유? UI작업을 비동기적으로 처리한다면 반드시 동기화 문제에 마주치게 된다. 안드로이드는 이런 문제를 막기위해 병렬 동작하는 Main Thread와 Working Thread 사이에 Handler를 두고 UI 작업은 모두 Main Thread로 전달하게 하였다. Main Thread 무거운 작업을 X : Main Thread에서 UI 작업이 이루어진다. 시간이 오래 걸리는 작업을 메인 스레드에서 하게 되면 UI 처리가 늦어진다. 핸들러를 통한 스레드간 통신 핸들러에 있는 sendMessage(.. Intent (인텐트) 와 Bundle Intent는 컴포넌트(액티비티, 서비스, 브로드캐스트 리시버)간에 통신을 하기 위한 '메시지 객체'입니다. Intent를 대표적 3가지 방법: 액티비티의 시작: startActivity(Intent), startActivityForResult(Intent, requestCode) 서비스의 시작: startService(Intent), bindService(Intent) 브로드케스트 전달: sendBroadcast(Intent), sendOrderedBroadcast(Intent), sendStickyBroadcast() 2가지 Intent 타입 : Explicit Intents (명시적), Implicit Intents (암시적). 1. Explicit Intents (명시적): 명시적 인텐트는 인텐트.. 바뀐 Fragment 생명주기 기존 생명주기 : https://growing-software-engineer.tistory.com/18?category=1294392 Fragment Lifecycle OnActivityCreated 가 사라진이유는 Activity와 Fragment의 생명주기의 영향을 줄이기 위해서라는데... 음.... 1. onAttach() : Activity에 Fragment가 추가 되는 부분 2. onCreate() : Fragment 만 CREATED 가 된 상황입니다. 이 시점에는 아직 Fragment View 가 생성되지 않았기 때문에 Fragment 의 View 와 관련된 작업을 두기에 적절하지 않습니다. 3. onCreateView() : 레이아웃 inflate 담당 savedInstanceState.. Activity LifeCycle ( 생명주기) Activity LifeCycle에는 onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroy(), onRestart()가 있다. Activity LifeCycle 1) onCreate() 액티비티가 Launch되고 최초 실행될때 호출. 생명주기 통틀어서 단 한 번만 수행되는 메소드. 필요한 리소스들 초기화 2) onStart() Activity가 화면에 표시되기 직전에 호출됨 화면에 진입할 때마다 실행되어야 하는 작업을 이곳에 구현함 BroadcastReceiver는 이 단계에서 등록을 하는것이 좋음. 3) onResume() Activity가 화면에 보여지는 직후에 호출됨 사용자한테 화면에 보여지고 상호작용하는 메서드이다. RecyclerV.. ANR (Application Not Responding) ANR : Application Not Responding 안드로이드 앱의 메인(UI) 스레드가 너무 오랫동안 일정 시간 어떤 Task에 잡혀 있으면 발생하게 된다. 'ANR(애플리케이션 응답없음)' 오류가 나타나게 된다. 주로 발생하는 원인 : Android 앱의 UI 쓰레드가 너무 오랫동안 차단되면 ANR 오류가 발생한다. 네트워크 통신을 할때 네트워크가 안 좋은 환경에서 통신을 수행할 때 발생 가능. ANR이 발생하는 경우 Input 이벤트(키를 누르거나 화면 터치 등)에 5초 안에 반응하지 않을 때 브로드캐스트 리시버가 10초 내로 실행을 끝내지 않을 때(UI가 없는 브로드캐스트 리시버, 서비스도 실행 주체는 메인 쓰레드이므로 긴 시간을 소모하는 작업일 경우 ANR을 발생시킴) ANR 해결방법? .. Activity와 Fragment Activity : Activity는 Android의 4대 Component중 하나로 사용자에게 실제로 보이며, 사용자와 상호작용하는 화면을 말한다. Activity는 하나 이상의 View또는 ViewGroup을 반드시 가지고 있어야 하며, 한 번에 하나의 Activity만 Disaplay할 수 있다. 더보기 ViewGroup 과 View 란???? ViewGroup : ViewGroup은 n개의 View를 포함할 수 있는 Container이다. 우리가 자주 쓰는 레이아웃이 ViewGroup에 해당한다. ex) LinearLayout, ConstraintLayout ... View : 안드로이드에서 사용자가 눈으로 보는 모든 것은 View이다. 화면의 기본적인 컴포넌트라고 얘기 할 수 있다. TextVi.. 안드로이드 4대 컴포넌트 안드로이드 4대 컴포넌트 Activity Service Broadcast Receiver Content Provider Activity 액티비티: 화면을 관리와 사용자가 발생시키는 다양한 이벤트를 처리하는 컴포넌트 UI화면을 담당하는 컴포넌트 더보기 ◆ 인텐트(Intent)를 통해 다른 애플리케이션의 액티비티를 호출할 수 있습니다. ◆ 2개 이상의 액티비티를 동시에 Display 할 수 없습니다. ◆ 1개 이상의 View 또는 ViewGroup을 포함합니다. ◆ 반드시 애플리케이션에는 하나 이상의 액티비티가 있어야 합니다. ◆ 액티비티 내에 프래그먼트(Fragment)를 추가하여 화면을 분할시킬 수 있습니다 Service 서비스: Service는 백그라운드 작업을 위한 애플리케이션 구성 요소이다 음악을 .. 채팅앱 만들기 4 1. 규칙 추가 Firebase Database에 chat 컬랙션 추가 2. new_message.dart 더보기 import 'package:cloud_firestore/cloud_firestore.dart'; import 'package:firebase_auth/firebase_auth.dart'; import 'package:flutter/material.dart'; class NewMessage extends StatefulWidget { @override State createState() => _NewMessageState(); } class _NewMessageState extends State { final _controller = new TextEditingController(); var.. 이전 1 2 3 4 5 6 ··· 13 다음