'Operating System/Android'에 해당되는 글 2건

  1. 2018.05.13 [Android] Handler Message obj 전달 (what, arg1, arg2)
  2. 2015.04.05 Android Market SDK버전별 어플 등록하기
2018.05.13 21:48


[Android] Handler Message obj 전달 (what, arg1, arg2)

android.os.Handler 를 이용해서 다른 쓰레드에서의 UI를 핸들링 하려면 Message object 를 전달하여 Handler 내부에서 처리한다.


안드로이드에서 작업시 통신이나 기타 작업을 위해서 쓰레드를 이용하는 경우에 타 쓰레드에서 액티비티 등의 UI 를 변경할 경우 android.os.Handler 를 사용하게 됩니다.


Handler 클래스를 Activity 클래스 내에서 정의 해 줍니다.

Handler handler = new Handler() { // 메인에서 생성한 핸들러
@Override
public void handleMessage(Message msg) {
if(msg.what == 0){
// 메세지를 통해 받은 값을 TextView에 출력
textView.setText("arg1="+msg.arg1);
textView.setText("arg2="+msg.arg2);
}
}
};


쓰레드에서 액티비티의 UI 를 변경해야 할 경우 액티비티의 핸들러에게 메시지를 보냅니다. 쓰레드로 핸들러 인스턴스를 넘겨주는 방법은 각자 필요에 맞게 넘겨주면 됩니다.

// obtain 메소드로 메세지 생성
Message msg = Message.obtain(mHandler, 0, arg1, arg2);
mHandler.sendMessage(msg); // 메인스레드의 핸들러에 메세지 보내기





Posted by injunech
2015.04.05 15:06


배경 : 
 안드로이드 앱을 등록할때, 2.2~ 2.3 버전별 앱과
 4.0 이상의 버전에 대한 앱을 만들고,
 이를 같은 배포 버전인 1.1로 하여 사용자에 따라 해당 앱을 다운로드 받게 하기 위함.

방법 :
 SDK버전별 앱을 두개를 만들고,
 각 배포 버전으로 똑같이 한다.
 단, 버전 코드를 다르게 해야 마켓에 동시에 활성화를 시킬수 있다.
 따라서 버전코드는 다르게 하고, 버전은 똑같이하여 APK 만들어서 마켓에 올린 후, 둘다 활성화 시킨다. 
 예) 2.2~2.3 용 : 버전코드 1, 버전 1.1
      4.0 ~     용 : 버전코드 2, 버전 1.1



Posted by injunech