마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

라이브러리를 만드는데 라이브러리에서 액티비티로 리턴해주고 싶습니다.

0 추천

액티비티에서 라이브러리 method를 실행하면 쓰레드로 돌리는 거라 바로 리턴받기가 좀 힘들어서

override 시켜서 리턴받을 때 실행하는 함수를 만들어주려고 합니다.

public interface resultValue {
		public void Success();

		public void Fail();
	}

이렇게 라이브러리 안에 인터페이스를 만들어 주고

쓰레드가 끝나서 성공하면

((resultValue)mContext).Success();

로 했더니 가지를 않네요... context가 제대로 들어온건 확인했구요...

 

라이브러를 적용한 Activity에서는 이렇게 적용했습니다.

public resultValue result = new resultValue() {
		
		@Override
		public void Success() {
			// TODO Auto-generated method stub
	Toast.makeText(MainActivity.this, "success", Toast.LENGTH_SHORT).show();
		}
		
		@Override
		public void Fail() {
			// TODO Auto-generated method stub
			
		}
	};

 

 

 

많은 조언 부탁드립니다. 이 방법 말고도 다른 방법을 알려주셔도 감사하겠습니다.

enghks1414 (160 포인트) 님이 2016년 7월 14일 질문

1개의 답변

0 추천
저 result 를 lib 에 set 하셨고, lib 내에서 올바른 동작을 했을때 result.onSuccess 를 call 하는 형태로 구성한게 맞는지요?
aucd29 (218,390 포인트) 님이 2016년 7월 14일 답변
result는 라이브러리 안에 있는 interface 구요.

네트워크 전송해서 결과로
if (Response.getResponseCode() == 200) {
    ((resultValue)mContext).Success();       
}
이렇게 했습니다.

여기까지 라이브러리 입니다.
mContext 변수 명을 유추 해 봤을 대 Activity 에서 this 로 넘기신거 같은데
resultValue 를 activity 에 implements 해서 사용하셔야 할 거 같은데 instance 형태로 사용하신거 같습니다만
...