Android App2015.07.25 17:30

찾아볼 시간이 없어서 그냥 간단한 방법으로 하였다,


public void connect(String nullMsg) {

broadCastThread = new Thread(new Runnable() {

public void run() {

try {

while (!broadCastThread.interrupted()) {

//구현

}

} catch (Exception e) {

e.printStackTrace();

}

}

});


broadCastThread.start();


}

그리고 멈출때는 


if (broadCastThread != null && broadCastThread.isAlive()) {

broadCastThread.interrupt();


그리고 다시 시작할때는 어쩔수 없이 connect()메소드를 다시 호출한다. 그냥 전역 쓰레드를 다시 정의해서 스타트 돌리는 꼼수이다.


wait, nofify도 된다는데 안되서 조금더 조사를 해봐야 할듯~

Posted by 동동(이재동)
Android App2015.07.23 11:46

Handler mHandler = new Handler();


핸들러를 만들고

Thread 안에 이렇게 쓰면  UI를 변경할수 있다.

mHandler.post(new Runnable() {
public void run() {
mTV.setText(msg);
}
});

더 좋은 방법이 있지만 간단하게 사용할려면 이게 편한듯

참고 : http://blog.naver.com/slrkanjsepdi/90116465979


Posted by 동동(이재동)
TAG Handler, Thread, UI
Android App2015.07.22 11:37

일단 커스텀 이벤트 등록


public interface MessageEventListener {

void onMessageEventListener(String msg);


}


이벤트를 보내기 위한 리스너 생성  (예: bc라는 클래스라고 하자)


public MessageEventListener mMessageListener;


public void setOnMessageListener(MessageEventListener listener){

mMessageListener = listener;

}



이벤트 받을 클래스에 리스너 등록

bc.setOnMessageListener(new MessageEventListener(){


@Override

public void onMessageEventListener(String msg) {

// TODO Auto-generated method stub

Log.i("CustomEvent", "Event Message : "+msg);

}

});



bc라는 클래스에서 이벤트를 호출 

mMessageListener.onMessageEventListener(msg);




Posted by 동동(이재동)
Android App2015.07.16 13:34



1. 같은 워크스페이스에 안드로이드 빈프로젝트를 하나 만들고 src에 클래스 파일을 만든다.


2. libs에 > import > General > File System > jar가 위치한 폴더를 선택 > 원하는 jar 파일만 체크하여 추가.

  (폴더는 해당 bin에 자동으로 생성된 jar파일을 직접 선택)


3. 빌드패스에서  라이브러리 > Add JAR> lib폴더에 있는 jar 을 직접 선택


4. 메소드 실행후에  class 를 찾을수 없다는 메세지가 나오면 폴더 선택 버튼을 누르고 라이브러리 플더 자체를 선택한다.



Posted by 동동(이재동)
Windows10 App2015.07.03 10:58

윈도우 스토어앱에서는

 

그 흔한 Osversion 메소드를 지원하지 않는다 ㅡ.ㅡ;;;

 

system.environment.osversion

 

그래서 어떻게 해야 하나 찾아봤는데 역시 구글신이 해결해주었다.

 

 

핵심소스는 이부분이다.

 

 

public static async Task<string> GetWindowsVersionAsync()
{
// There is no good place to get this so we're going to use the most popular
// Microsoft driver version number from the device tree.
var requestedProperties = new[] { DeviceDriverVersionKey, DeviceDriverProviderKey };
var microsoftVersionedDevices = (await PnpObject.FindAllAsync(PnpObjectType.Device, requestedProperties, RootContainerQuery))
.Select(d => new { Provider = (string)d.Properties.GetValueOrDefault(DeviceDriverProviderKey),
Version = (string)d.Properties.GetValueOrDefault(DeviceDriverVersionKey) })
.Where(d => d.Provider == "Microsoft" && d.Version != null)
.ToList();
var versionNumbers = microsoftVersionedDevices
.GroupBy(d => d.Version.Substring(0, d.Version.IndexOf('.', d.Version.IndexOf('.') + 1)))
.OrderByDescending(d => d.Count())
.ToList();
var confidence = (versionNumbers[0].Count() * 100 / microsoftVersionedDevices.Count);
return versionNumbers.Count > 0 ? versionNumbers[0].Key : "";
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

참고 :  http://stackoverflow.com/questions/10125324/get-os-version-in-winrt-metro-app-c-sharp

Posted by 동동(이재동)