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

함수부분 질문 좀 드립니다.

0 추천

a라는 함수가 있어요. 이 함수는 소스 중간에 b라는 함수를 호출하여 b함수의 최종값을 전역변수에 담고 a라는 함수는 이을 이용해야 합니다.

a {

......1

b함수 호출

......2

}

 

질문을 드리고자하는 바는...

소스 순서상으로

a함수 호출   ->   .......1 호출    ->   b함수 호출( 전역변수에 값 담을때까지 ....2가 호출되서는 안되용)   -> ......2 호출

b함수호출에서 ......2 호출이 되지 않게 할려면 어케 작업해야하나용?ㅠ

 

앤드류이드 (6,190 포인트) 님이 2014년 2월 25일 질문
앤드류이드님이 2014년 2월 25일 수정

3개의 답변

+1 추천
 
채택된 답변
고민할 필요가 없어보이는데.. 1에서 쓰레드나 핸들러를 돌리기라도 하신건가요??

리턴 값이 있든 없든 일반 메서드 호출이라면 순차적으로 라인 순서대로 흘러가야 합니다.

따라서 b함수 내용이 끝남과 동시에 2가 호출되므로 원하는대로 될것 같은데..

소스 내용을 안보면 안되는 이유를 모를것 같네요..
Gioskhan (12,060 포인트) 님이 2014년 2월 25일 답변
앤드류이드님이 2014년 2월 27일 채택됨
빙고~ 제가 잘못 알고 있었네요 ㅋㅋ
1에서 쓰레드가 돌아가요..// 감사합니다~ 해결했어요 ㅋㅋㅋㅋ
0 추천
응..? b함수가 void 인가요? 리턴 값을 받는 거면 상관없는데용

리턴이 아니라면 굳이 b함수로 뺄 이유도 없는 듯하궁 ㅎㅎ
초보개발자ㅠ (33,870 포인트) 님이 2014년 2월 25일 답변
간단한 예로 보여드려서 그러지만. b함수 빼야합니다.ㅠ
return없이 void형으로 가정했을때 어케 방법이 있나용?
흠.. 우선 말씀드리면 최적화된 방법은 떠오르지않네요 ㅋㅋ
그리고~ 전체적인 구조와 목적을 알면 좋겠지만 ;;
하나의 방법으로
a함수 (인자로 플래그를 줘서) {
 조건문(플래그)
 // 1번 수행
 B함수 호출 (작업 후 A함수 재호출(인자플래그) )
 // 2번 수행
하는.... 뭐 우회해서 생각한다면 여러가지 방법이 있겠죠 +_+
앞서말씀드렸듯이 리턴이 아니라면 b함수 부분을 1과 2사이에 넣을 수도 있구용
저도 이 부분에 대해서 착각하고 있었네요 '-';;
아래의 Gioskhan 님 말씀대로입니다.

하지만, 글쓴님은 아마 현소스에서 그런 현상이 발생했기때문에 문제제기하신것 같은데 코드를 보여주시거나 추가설명이 필요합니다~
0 추천
b 함수가 쓰레드로 돌아간다면

interface 하나 만드신 다음에

 

a()

{

......1

b(this)

......2
}

b(interface inf)

{
 ...

if (inf != null)

    inf.method()

}

 

inf.method()

{

2
}

요렇고럼 하면 안되나요??
삽질하세 (1,250 포인트) 님이 2014년 2월 25일 답변
...