일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- flutter firestore
- Android
- 안드로이드 구글맵
- livedata
- Python
- Flutter TextField
- Django REST framework
- 안드로이드
- 코틀린
- Kotlin
- RxJava
- Django REST
- Rxjava2
- NDK
- Android P
- Java
- UWP
- kodility
- FLUTTER
- C/C++
- C++
- dart
- mfc
- C
- android push
- 알고리즘
- android architecture component
- Django REST Android
- RxAndroid
- 프로그래머스
- Today
- Total
목록안드로이드 (8)
개발하는 두더지
[안드로이드] onSaveInstanceState(), onRestoreInstanceState() 로 액티비티 상태 저장 화면전환의 경우 onPause() -> onStop() -> onDestory() 과정을 거쳐 액티비티가 종료되고 다시 onCreate() -> onStart() -> onResume() 과정으로 다시 실행이 됩니다. 이전 상태를 저장하지 않았기 때문에 이미 화면에 보여줬던 데이터는 사라지게 됩니다. onSaveInstanceState(), onRestoreInstanceState() 함수를 이용하여 Bundle로 데이터를 보관하고 다시 가져오면 데이터 유실을 막을 수 있습니다.@Override protected void onSaveInstanceState(Bundle outStat..
위 사진과 같은 글쓰기 관련된 뷰가 있다고 생각해봅시다. 제목, 소제목, 내용을 입력하는 컴포넌트는 EditText 입니다. 이 EditText를 클릭하여 글을 쓸려고하면 소프트웨어 키보드가 올라오게 됩니다. AndroidManifest.xml 파일에서 설정한 값에 따라 액티비티에서 소프트웨어 키보드가 나타날 때 UI를 어떻게 처리할 건지 모드를 정할 수 있습니다. android:windowSoftInputMode="adjustResize"이 옵션을 주면 키보드가 올라와도 사이즈를 조절하여 UI가 잘리지 않고 그대로 보이게 됩니다.물론 키보드가 나타날 때 사이즈를 조절하지 않고 안보이게 하고 싶을 수도 있습니다. android:windowSoftInputMode="adjustPan" 이 옵션을 주면 키보..
화면회전이 발생하면 onCreate()가 호출되면서 UI를 새로 그리게 됩니다.UI를 새로 그리지 않고 가로 모드, 세로 모드에 따라서 UI를 어떻게 변경할 수 있을까요? 우선 configChanges에 orientation과 screenSize 값을 설정해줍니다. 그러면 화면 전환시 onCreate()가 호출되지 않습니다. 화면 전환시 발생하는 이벤트 콜백에서 화면 모드에 따라 다른 동작을 진행하면 됩니다.@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); if(newConfig.orientation == Configuration.ORIENTATION_P..
targetSdkVersion이 "P"로 설정된 경우 앱에 영향을 미치는 주요 변경사항 포그라운드 서비스 권한포그라운드 서비스를 사용하려면 FOREGROUND_SERVICE 권한을 요청해야함권한없이 서비스를 시작하면 SecurityException이 발생 Bouncy Castle 암호화 지원 중단Bouncy Castle가 제공하는 여러 암호화가 중단되고 Conscrypt가 제공하는 암호화로 대체됨 Build.serial에 대한 직접 액세스 제거READ_PHONE_STATE 권한 요청 이후, Android P [ API 28]에 추가된 Build.getSerial() 을 사용 WebView 데이터 디렉토리 공유 불가앱이 여러 프로세스에서 단일 WebView 데이터 디렉토리를 공유할 수 없음 앱의 데이터 디..
안드로이드에서 제공하는 뷰를 상속받아 커스텀 뷰를 만들 때는 뷰가 그려지는 방법에 대해 이해하는 것이 중요합니다.onMeasure() 뷰의 크기를 정함onDraw() 뷰를 그림 onMeasure() 의 파라미터int widthMeasureSpec, int heightMeasureSpec이 2개의 값은 부모컨테이너에서 정한 가로, 세로의 크기이고, View.MeasureSpec 의 값입니다. 결국 이 크기 값으로 onDraw()에서 그려지게 됩니다.@Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // Try for a width based on our minimum int minw = getPaddingLef..
android.app.Application cannot be cast to xxxx 에러가 발생한다면 ? Custom Application 클래스를 사용한다면 AndroidManifest.xml 에 반드시 name을 설정해줘야 한다.AppApplication.java 파일을 만들고 Application 을 상속받았다.
포스팅 이유서비스 앱 개발이나 토이 프로젝트를 진행하면서 빠르게 초기 스켈레톤 구조를 구성하기 위해 포스팅을 합니다.저는 아래와 같은 상황일 때 코드를 줄이기 위해 사용합니다.1. ActionBar 대신 Toolbar를 사용할 때2. Toolbar를 xml, activity 마다 정의해서 코드가 중복될 때 프로젝트 시작시 자주 쓰는 스켈레톤 구조 style.xmlCustom Toolbar를 사용하기 위해 기본 AppTheme을 NoActionBar로 적용 BaseActivity.javaBaseActivity를 상속받은 Activity들은 toolbar 이름, 뒤로가기 버튼이 활성화된다.abstract public class BaseActivity extends AppCompatActivity { priv..
목차1. Service에 대해 알아보기2. BroadcastReciever에 대해 알아보기3. 개발 방법 결과물1. Service와 Broadcast 에 대한 이해 및 적용 방법2. 프로젝트 코드 1. Service서비스는 쉽게 말하면 메인스레드에서 동작하는 UI가 없는 액티비티이다.UI가 없으므로 라이프사이클은 다음과 같이 동작한다.onCreate() -> onStart() -> onDestory() 메인스레드에서 관리하기 때문에 UI가 종료되어도 살아서 서비스를 계속한다. 2. BroadcastReceiver핸드폰에서 발생하는 특정 intent 신호를 받아주는 클래스이다. // registerReceiver 메소드를 호출해 동적으로 리시버를 등록할 수 있고, AndroidManifest에 receiv..