본문 바로가기
반응형

분류 전체보기271

[Android] 어플 재시작 방법 프로그램 개발을 하다 보면 사용자에 의해서 어플이 재시작될 수도 있지만 어떠한 경우에는 프로그램 자체적으로 어플을 다시 실행시켜야 하는 경우가 많이 있습니다 제 경우에는 Handler와 Thread를 많이 사용하는 프로그램에서 Activity가 종료될 때 초기 페이지로 가면서 실행된 Handler와 Thread를 전부 종료해야 하는 경우가 생겼고 onDestroy 등에서 실행된 것들을 전부 종료하기에는 리소스 낭비가 크다고 판단하여 뒤로 가기 버튼이 눌리는 순간 어플을 아예 새로 시작하는 방법을 구현하였습니다 먼저 사용자에 의해 뒤로 가기 버튼이 눌리는 경우 Activity에서는 onBackPressed를 호출합니다 @Override public void onBackPressed() { super.onB.. 2022. 9. 12.
[Android] IllegalThreadStateException 에러 해결 안드로이드 java언어를 사용해서 개발을 할 때 Thread를 많이 사용하게 되는데 올바른 Thread 사용방법을 지키지 않을 경우 IllegalThreadStateException에러를 많이 만나게 됩니다 발생 원인 new를 통해 생성한 Thread를 start를 통해 실행한 뒤 해당 Thread가 종료되기 전에 start를 다시 호출하는 경우 즉 하나의 Thread에서 start를 두 번 실행할 경우에 문제가 발생 해결방법은 두 가지의 경우에 따라서 달라질 수 있습니다 단일 Thread 사용 시 Thread를 class내부에 전역으로 선언하고 생성한 뒤에 재사용할 경우 public class MainActivity extends Activity { Thread testT = new Thread(); .. 2022. 9. 6.
[Android] 안드로이드 PC RS232 사용법 (CD-RK3288-01) 오늘은 개발에서 사용했던 CD-RK3288-01 미니 PC 모델 RS232 포팅 방법에 대해 포스팅하도록 하겠습니다 대부분 미니PC는 USB 단자를 통해 RS232가 포팅이 되어 사용되지만 해당 모델처럼 RS232 단자가 별도로 구성되어 있는 보드의 경우에는 별도로 포팅을 진행해야 사용이 가능합니다 제가 사용했던 CD-RK3288-01 모델은 RS485, RS232 등등 다양한 단자를 지원하기 때문에 산업기술개발 측면에서는 일반적인 USB만 있는 미니 PC보다는 전문적인 프로그램에 적합합니다 USB 포트가 3개 지원되지만 왼쪽 하단에 있는 232 포트를 사용할 수 있도록 설정해보도록 하겠습니다 AndroidManifest.xml 2022. 9. 6.
[Android] FCM 알림 구현 이전 포스팅을 통해 서버에서 Android로 FCM 알림을 보내는 방법에 대해 알아봤습니다 리눅스 Centos 서버의 php를 통해서 notification으로 fcm을 전송하는 방법은 다음 포스팅에서 확인 가능합니다 2021.12.13 - [언어/PHP] - 리눅스 FCM push message 전송 리눅스 FCM push message 전송 리눅스 Centos7에서 FCM메시지를 전송하기 위해서 PHP를 사용했지만 진행하는 프로젝트가 TCP/IP C언어 프로그램에서 전송해야 되는 시스템이라 다음과 같이 구성하였습니다. C언어에서는 curl 라이브 codinghero.tistory.com 이렇게 보낸 FCM 메시지를 안드로이드에서는 알림으로 띄워줄 수 있어야 합니다 기본적으로 안드로이드에 Firebas.. 2022. 8. 31.
[c언어] 문자열을 Int형 정수로 변환하는 atoi함수 오늘은 리눅스에서 골치 아팠던 문자열 정수 변환 방법에 대해 알아보겠습니다 골치 아팠던 이유 중 하나는 mysql DB의 값을 select count 또는 정수형 데이터를 읽어올 때 결과값을결괏값을 atoi를 통해서 변환을 한 뒤에 사용해야 하는데 해당 결괏값을 그대로 사용하려다 보니 에러가 발생했습니다 atoi 의미 atoi 함수는 a, to, i 세 가지로 분리해서 볼 수 있습니다 a = ASCII, i = Int로 해석한다면 atoi의 뜻은 ASCII to Int입니다 즉 char 타입을 int 타입으로 변경한다는 것입니다 함수 원형 int atoi ( const char* str ); double atof( const char* str ); long int atol( const char* str .. 2022. 8. 30.
[Android] Thread 사용하기 기존에 MainActivity에서 Handler를 이용한 프로그램을 많이 사용했습니다 이유는 Handler.sendEmptyMessageDelayed를 이용하게 되면 내가 원하는 만큼 지연을 줄 수도 있고 핸들러를 원하는 시간 간격만큼 딜레이를 주면서 반복적인 작업이 가능했기 때문입니다 하지만 핸들러 사용에 가장 큰 문제는 해당 처리를 현재 Activity의 MainThread에 전달할 뿐이고 처리는 Handler라는 곳에서 하는것이 아닌 온전히 MainThread의 몫이라는 것입니다 그렇다 보니 Handler를 많이 사용하게 될 경우에는 메모리 릭에 의해 어플이 종료되는 현상이 발생합니다 이러한 문제를 해결하기 위해선 MainThread의 과한 업무부담을 줄여주는 것인데 그 방법으로 Handler가 아.. 2022. 8. 30.
반응형