컴퓨터공부 362

Android activity / fragment life cycle(계속 업데이트)

많이 봐오던 안드로이드 라이프 사이클이다. onPause()는 현재 상태에서 팝업이 뜰 경우 발생할 수 있다. onStop()는 홈버튼을 눌렀을 때 발생한다. recent키를 통해서 앱을 선택하게 되면 onRestart() 상태가 된다. onDestory()는 recent에서 앱을 닫았을 때 발생한다. App process killed는 시스템에서 메모리가 부족할 때 언제나 발생할 수 있다. 이 때는 앱을 다시 시작 해야 한다. fragment life cycle이다. 다양한 UI를 쉽게 구성하거나 재사용에 쉬워서 자주 사용 되지만, 관리의 어려움이 있어서 activity만 사용하려고 하는 경우도 존재한다. 프래그먼트를 추가 또는 제거하는 등 개별적인 조잘이 가능 액티비티는 프래그먼트의 트랜잭션을 관리 ..

String의 null 체크 필요 없이 문자열이 같은지 비교하기(Objects.equals())

String문 비교할 때, 아래와 같은 구문을 쉽게 볼 수 있다. 1. if (str != null && str.equals("true")) { } 2. if (str != null && "true".equals(str)) { } 3. if ( (str1 != null && str2 != null) && str1.equals(str2)) {} 1번에 비해서 2번이 낮다, 그리고 변수가 2개가 되면 3번이 된다. 뭘 어떻게 봐도.. 구리다.. 이럴 땐 아래와 같이 쓰면 된다. 쉽고 간단하고 안전하다. if( Objects.equals(str1, str2)) { } 원형 : public static boolean equals(Object a, Object b) { return (a == b) || (a !=..

savedInstanceState 사용법 + fragment 예제

화면이 회전되거나 크기가 변할 때 화면이 다시 그려지는데,View 안의 데이터가 유지가 되지 않습니다. 이럴 때, savedInstanceState를 사용하면 View 안의 데이터를 보존 할 수 있습니다. class내에서 public void onSaveInstanceState(Bundle outState) 함수를 재정의하여 사용하면 됩니다. MainActivity.javapublic class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.savefragmen..

REST API 사용하기(2) - POST

이전 예제 에서는 Restful API 중 get만 표현되어 있었다.Post를 어떻게 하는지 궁금해서 찾아 봤더니, HttpURLConnection은 기본으로 GET 을 쓰기 때문에, Post를 쓰려면 SetRequestMethod() 를 써주면 된다고 한다. URL httpbinEndpoint = new URL("https://httpbin.org/post");HttpsURLConnection myConnection = (HttpsURLConnection) httpbinEndpoint.openConnection(); myConnection.setRequestMethod("POST"); // Create the dataString myData = "message=Hello"; // Enable writi..

안드로이드 에뮬레이터에서 INSTALL_FAILED_NO_MATCHING_ABIS 를 내 뱉을 때..

원인은 x86에뮬레이터를 켜고 arm용 apk를 설치 하려고 해서 나오는 에러이다.(그 반대 일 수도 있고,,) 처음에는 에뮬레이터를 arm용으로 실행하려고 했으나, 겁나 느려서 포기...두번째로는 apk파일을 x86으로 만들려고 했으나 어디서 바꾸는지 몰라서 포기..-_-;마지막으로 아래와 같이 build.gradle의 android 항목에 아래 붉은 색 추가 해서 성공 android { compileSdkVersion 23 buildToolsVersion "23.0.2" defaultConfig { applicationId "com.appname" minSdkVersion 16 targetSdkVersion 23 versionCode 1 versionName "1.0" } buildTypes { re..

현재 날짜 추출하기 및 날짜 간격 확인하기

날짜 관련된 것은 신경 안썼는데..이게.. 들여다 본것 정리를 하는게 좋을것 같다. 날짜를 구할 때는 Calendar.YEAR, Calendar.MONTH 과 같은 매크로? 같은걸 써줘야 쉽게 날짜를 구할 수 있다. 아래 함수와 같이 Calendar.set()를 통하여 날짜를 생성할 수 있다. public Date getFirstDayOfWeek(){ // 현재 날짜를 구한다 Calendar cal = Calendar.getInstance(); // cal.setTimeZone(TimeZone.getTimeZone("GMT")); int year = cal.get(Calendar.YEAR); int month = cal.get(Calendar.MONTH); // int days = cal.get(Cale..

StringTokenizer 예제

StringTokenizer 클래스는 String.split()와 비슷하지만 또 다르다.사실 두개가 무슨 큰 차이인가 하는 생각이 들기도 한다. 어떤걸 쓰더라도 문제 없이 쓰면 되는거 아닌가?그래도 두개의 차이는 존재 한다. String.split()에 비해 StringTokenizer은 여러 문자에 대해서도 한번에 파싱이 가능하다.아래와 같이 "!"와 "/"를 한 번에 파싱할 수 있다.String str = "1/2!3/4!5"; StringTokenizer tokenizer = new StringTokenizer(str, "/!");결과 > 12-22 01:45:42.486 13023-13023/com.study.practice.stringtokenizer I/System.out: 112-22 01:..

OAuth로 access_token 받는 순서도

아래 표가 OAuth를 통하여 access_token을 받을 수 있는,가장 간단히 표현하면서 이해하기 쉽게 그려진 순서도 인것 같다. 링크의 내용을 공부하면 최고로 좋을 것 같다. 저자도 한번에 이해가 잘 안될거라고 말한다..물론 나도 그랬다... 출처 : https://opentutorials.org/course/2473/16571 출처 : https://opentutorials.org/course/2473/16571 http://ohgyun.com/470