2014-11-04 4 views
0

저는 새로운 안드로이드 프로그래머입니다. 최근에는 프로그래밍 할 때 약간의 문제가 발견되었습니다. 주요 활동에는 예를 들어 a(), b(), c()의 세 가지 기능이 있습니다. 따라서 a()b() 이후에 c()이 실행되도록하려면 어떻게해야합니까? 이처럼함수를 특정 순서로 안드로이드 프로그래밍에서 실행하는 방법?

:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    a();//get view 
    b();//do sth for view like set text in text view 

    //trigger.setOnClickListener(new OnClickListener() { 
     //@Override 
     //public void onClick(View v) { 
     // c(); 
     //} 
    //}); 
    //this is using a button to call the function, but I want it run automatically after a() and b() finish 
} 
+2

a에서 스레딩을하지 않는 한 b는 항상 그 구조에서 c보다 먼저 실행되어야합니다. – tyczj

+0

b()를 추가 할 수 없습니까? a의 끝까지; 및 c(); b()의 끝까지 ;; – MrEngineer13

답변

0

후 onPostExecute() 메소드를 implementate해야합니다 나는 실행 가능한 사용하여 그것을 해결했습니다. 나는 메인 스레드가 컨트롤의 변경만을 다룹니다.

0

하는 새로운 기능 B를 작성해야합니다()에서 onCreate 외부().

+0

시도했지만 c()가 실행되지 않았습니다. –

0

(), b() 및 c()를 onCreate에서 생성하여 호출하십시오. 이 같은 원하는 순서대로 : 당신이 어떤 비동기 작업이있는 경우

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    a(); 
    b(); 
    c(); 
} 
private void a(){...} 
private void b(){ 
... 
trigger.setOnClickListener(new OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     c(); 
    } 
//}); 
} 
private void c(){...} 

는 다음 모든 AsyncTask를 호출

관련 문제