반응형 앱 만들기399 데몬쓰레드 만들기 S/W 용어에서 데몬(deamon) 은 사용자가 직접 제어하지 않고 백그라운에서 돌면서 여러 작업을 하는 프로그램을 말합니다. 데몬의 어원 뜻은 그리스어로 '악한 영혼' 이란 뜻으로 인간과 신을 연결해주는 매개체 역할을 하는 존재라고 합니다. 음 백그라운드에서 작업을 하며, 메인 프로그램을 도움을 주는 것을 연관 짓자면 비슷한거 같기도 하네요 ^^ 어쨌든, 데몬 스레드를 만들어봅시다. 데몬 스레드는 메인 스레드가 종료되면 같이 따라 강제로 종료되는 스레드를 이야기합니다. 메인 스레드가 종료되기 전에는 별도로 자신의 일을 수행하고 있겠죠? 프로그램으로 예를 들자면, 메신저 채팅 중의 파일 송수신 혹은 앱 내에서 자동으로 저장하는 기능 등등이 되겠습니다. 이런 프로그램들은 앱 자체가 정말 종료되면 당연히 종.. 앱 만들기/안드로이드 study 2022. 6. 6. 쓰레드 중지 시키기. 쓰레드를 가장 안정적으로 중지시키는 방법은 쓰레드 내 반복문의 플래그를 false 로 바꾸어 run() 메소드가 정상적으로 실행을 마치게 하는 것이다. @Override public void run() { while(isRepeat = true){ //isRepeat 변수를 false 로... System.out.println("쓰레드 동작 중"); } 하지만, Thread 의 interrupt() 함수로 강제 exception 을 발생시켜 동작중인 쓰레드를 정지시킬수 있다. public class ControlThread { public static void main(String[] args) { Thread th2 = new Thread(new Thread2()); th2.start(); //인터럽트.. 앱 만들기/안드로이드 study 2022. 6. 3. 쓰레드 동기화 스레드에서 동기화가 필요한 이유는 다음과 같습니다. A, B 스레드가 공통 데이터에 접근을 합니다. A, B 각각 공통 데이터에 값을 설정합니다. 우리가 기대한 결과는 A 가 설정된 후 A의 값이 나오고 B는 B의 설정된 값이 나오길 원합니다. 그런데, 결과는 하나의 스레드가 값을 세팅하는 중 다른 스레드가 덮어쓰기를 하게 됩니다. 즉, 마지막에 실행된 스레드가 값을 덮어쓰기 하게 되는 것입니다. 바로 스레드의 동기화가 필요한 시점입니다. 공용데이터 shareData public class ShareClass { int shareData; void setData(int num) { shareData = num; try { Thread.sleep(1000); } catch (InterruptedExcept.. 앱 만들기/안드로이드 study 2022. 5. 11. 익명클래스 는 언제 사용되나요? https://soo0100.tistory.com/1794 Java - 중첩 인터페이스가 필요한 이유 자바에서 중첩 인터페이스는 주로, 이벤트 구현 목적으로 사용된다. 중첩 인터페이스는 멤버 인스턴스와 정적 멤버 인스턴스로 나뉠 수 있는데 안드로이드 및 자바의 UI 이벤트 구현을 위해서는 soo0100.tistory.com 익명 클래스는 클래스 이름이 없는 클래스를 말합니다. 사용처는 주로 윈도우 나 안드로이드의 UI 이벤트 시스템을 구현 시 사용이 됩니다. 지난 시간에는 중첩클래스를 사용해서 클릭 이벤트를 구현해보았습니다. 동일한 구성이나, 컴포넌트에 대한 클래스를 별도로 생성해서 변수로 담고 있지 않다는 것이 다릅니다. 익명 클래스는 이름이 없기때문에 익명 클래스를 선언한 특정한 범위 내에서만 사용됩.. 앱 만들기/안드로이드 study 2022. 4. 23. Java - 중첩 인터페이스가 필요한 이유 자바에서 중첩 인터페이스는 주로, 이벤트 구현 목적으로 사용된다. 중첩 인터페이스는 멤버 인스턴스와 정적 멤버 인스턴스로 나뉠 수 있는데 안드로이드 및 자바의 UI 이벤트 구현을 위해서는 주로 정적 멤버 인스턴스 방식이 많이 사용된다. 사용법을 알아보자. 버튼을 눌렀을때 반응하는 이벤트 클릭 리스너를 구현하고자 하면, 버튼은 하기처럼 구현이 된다. 실제 안드로이드나 버튼 클래스의 내부는 이런 식으로 정적 멤버 인터페이스가 정의되어있다. Open API Document를 참조하면 알 수 있다. (하기 링크 참조 바람) public class Button { //인터페이스 타입 필드 OnClickListener listener; //중첩 인터페이스 static interface OnClickListener{.. 앱 만들기/안드로이드 study 2022. 4. 22. 자바 예외처리가 필요한 이유 자바에서는 프로그램 예외를 어떻게 잡아낼까요? 컴파일 과정에서 오류로 발견되는 것이 가장 일반적 입니다. 자바에서는 일반적으로 예외가 발생할 가능성이 있는 코드를 발견하면 컴파일 단계에서 강제적으로 예외코드를 작성하도록 요구합니다. 이런 에러를 자바에서는 "일반 예외"라고 말합니다. 하기 코드가 그런 경우죠. Class test = Class.forName("java.lang.string"); 클래스 명이 없을 수 도 있기에 미리 컴파일 과정에서 하기와 같은 exception 처리를 하도록 에러메시지를 받습니다. 이런 경우는, 개발자가 다행히도 프로그램 오류를 컴파일 단계에서 방어 할 수 있습니다. 예외처리 중 다른 하나는 실행 과정에서 발생하는 에러 입니다. 바로 "실행 예외"입니다. 프로그램 구동 중.. 앱 만들기/안드로이드 study 2022. 3. 12. 커스텀 어댑터 뷰를 활용한 리스트뷰 구현하기-2 https://soo0100.tistory.com/1731 커스텀 어댑터 뷰를 활용한 리스트뷰 구현하기-1 https://soo0100.tistory.com/1716 안드로이드 어댑터 뷰 기초(리스트 뷰 만들기) https://soo0100.tistory.com/1713 스크롤 뷰 만들기 와 주의사항 화면에 넘치는 데이터를 처리하는 것 중 가장 기본적인 것이 바.. soo0100.tistory.com 지난 시간, 리스트 뷰의 화면과 데이터 구성을 모두 마쳤다. 오늘은 해당 데이터를 커스텀 어댑터 뷰 에 연결하고, 리스트 뷰와 어댑터를 연결하겠다. 3. 데이터 와 어댑터 를 연결한다. 우리가 만든 리스트 뷰는 이미지와 텍스트 데이터를 담고 있다. 개발자가 원하는 어댑터 뷰를 만들기 위해서는 BaseAdap.. 앱 만들기/안드로이드 study 2022. 2. 15. 커스텀 어댑터 뷰를 활용한 리스트뷰 구현하기-1 https://soo0100.tistory.com/1716 안드로이드 어댑터 뷰 기초(리스트 뷰 만들기) https://soo0100.tistory.com/1713 스크롤 뷰 만들기 와 주의사항 화면에 넘치는 데이터를 처리하는 것 중 가장 기본적인 것이 바로 스크롤 뷰이다. 스크롤 뷰에서 주의 사항은 다음과 같다. 1. 스크롤 뷰 soo0100.tistory.com 이미지와 텍스트 정보 등이 혼용되는 리스트 뷰 를 구현하기 위해서는 BaseAdpater 클래스를 상속받아 개발자가 직접 구현하는 커스텀 어댑터를 생성해야 한다. 우리가 주로 앱에서 많이 보는 리 스튜 뷰의 타입이 바로 커스텀 어댑터 뷰이다. 구현 결과물은 하기와 같다. 위 데이터가 로컬이 아닌 서버에서 받게 된다면, 그럴듯한 앱이 되는 것이.. 앱 만들기/안드로이드 study 2022. 2. 14. 안드로이드 스튜디오 implement 함수 구현하는 방법 하기처럼, 특정 클래스를 상속받았을 때, 안드로이드 스튜디오에서 빨간색 줄이 표시되고 하기와 같은 메시지가 나온다면... (메시지는 마우스를 빨간색 줄에 가져다 되면 나옴) 추상 클래스를 상속받았기에 Implement 함수를 구현하라는 의미이다. Implement 함수를 구현하는 방법은 여러 가지 가 있을 수 있겠다. 위 메시지처럼 Alt+Shift+Enter를 눌러서 구현하는 방법, 하기처럼, 빨간색 전등 마크를 눌러서, Implement methods를 구현하는 방법 도 있다. 나는 주로, Ctrl+I 를 사용한다. 해당 팝업이 나타나면 모두 선택하고 OK를 한다. 하기처럼, Implements 함수들이 모두 구현됨을 알 수 있다. 이제 자신이 원하는 코드로 대체하면 되겠다. public class .. 앱 만들기/안드로이드 study 2022. 2. 11. 생성자 손쉽게 만들기 생성자를 직접 코딩하는 방법도 있겠지만, 안드로드 스튜디오에서 지원하는 방식을 이용하면 손쉽게 코딩이 가능하다. ALT+Inset 키를 선택 후, 하기 처럼 생성자 를 선택한다. 예제는 지난 시간 사용했던 모델클래스 이다. 필드값 모두를 생성자 인수로 받게 만들려면, 하기 처럼 Shift 키를 누른상태로 모든 필드를 선택한다. 그럼, 하기 처럼 자동으로 생성자가 생성이 된다. //모델 클래스 public class Weather { private String city; private String temp; private String weather; public Weather(String city, String temp, String weather) { this.city = city; this.temp =.. 앱 만들기/안드로이드 study 2022. 2. 10. 이전 1 ··· 18 19 20 21 22 23 24 ··· 40 다음 반응형