2019년 7월 3일 수요일

안드로이드 서비스의 스레드 안에서 토스트 띄우기

안드로이드 서비스의 스레드 안에서 토스트를 띄워야할 상황이 있다.
하지만 토스트함수의 직접호출이 안되고
서비스 내에는 runOnUiThread() 도 사용 불가하기 때문에 다음과 같이 대체함수를 만들어 호출한다.


1. 서비스 클래스 안에서 멤버 변수 선언
Handler handler;    // for toast UI


2. OnCreate() 내부에서 초기화
handler = new Handler();

3. 함수 추가
private void _runOnUiThread(Runnable runnable) {
    handler.post(runnable);
}


4. 우리가 원하는 토스트 띄우기
  (3.에서 선언한 함수를 불러오기)
_runOnUiThread(new Runnable() {
    public void run() {
        Toast.makeText(getApplicationContext(),
                       "TOAST MESSAGE TEXT",
                       Toast.LENGTH_LONG).show();
   }
});


2019년 2월 11일 월요일

Java 10 keytool error

keytool -exportcert -alias androiddebugkey -keystore ~/.android/debug.keystore -list -v -storepass android
Android앱과 firebase 연동과정에서 SHA1 hash값을 얻기 위해 위와 같이 입력하였다.

그러자 나오는 java 관련 에러메시지

keytool error: java.lang.Exception: Only one command is allowed: both -exportcert and -list were specified


-exportcert와 -list 명령어가 겹친다는 것 같다.

검색해보니 명령어 순서를 바꾸거나 줄이거나 해서 해결 가능하다.

[해결책]

명령를 아래와 같이 바꾼다.
Mac OS이기 때문에 홈 디렉토리는 ~로 표기

keytool -list -v -alias androiddebugkey -keystore ~/.android/debug.keystore


storepass는 직접입력: android

*Winodws 환경도 debug.keystore가 있는 디렉토리(홈 경로) 표기만 차이있을 뿐 Windows에서도 같은 방법으로 해결.

2019년 1월 29일 화요일

VPS (Virtual Private Server) 서비스 비교


가볍게 PHP 기반 웹 어플리케이션을 돌릴 호스팅 서비스를 찾아보는 중에 다음과 같은 서비스들이 있었다.


Digital Ocean
가성비 좋음
한국에서도 빠름(싱가폴 or 샌프란시스코)
워드프레스 구동용으로 많이 사용


Amazon
Lightsail: 아마존도 VPS 서비스 개시
경쟁업체 서비스(Digital Ocean)에 맞춘 듯한 월 정액제 가격
최소 월 3.5 USD 부터 시작
EC2의 복잡한 설정이 번거롭다면 Lightsail로 간편하게 셋업


Google
Google Cloud Platform
구글 망 내부 서버간 트래픽 무료
Firebase를 비롯 구글 플랫폼 연계하기 좋아보임
가격 정책 복잡해보임