2012-07-31 2 views
0

나는이 두 가지 방법을 가지고 있는데, 무엇을 넣어야 할지를 "something1 *"이 일어 났을 때이 기본 활동을 일시 중지 한 다음 주 활동이 일시 중지 된 동안 someactivity1 *로 변경합니다. 하지만 내 문제는 그것이 내 활동을 변화시키지 않는다는 것입니다. 그것은 내 주요 활동을 얼어 버리고 다른 일을하지 않습니다. 스레드를 파괴했기 때문에 probabli가되었지만 해결책이 없으며 확실하지 않습니다. 합니다 (방법 2는 루프 내부에) 도움Android 자바 액티비티

public void method1(){ 

     super.onPause(); 
     run = false; 
     while(){ 
     try{ 
      thread.join(); 
     }catch(InterruptedException e){ 
      e.printStackTrace(); 
     } 
    } 

     thread1 = null; 

    Intent i = new Intent(someactivity1*); 
    startActivity(i); 

    } 

    //the method2 is inside a loop 
    public void method2(){ 

    if(something1*){ 

     onPause(); 

    } 

    } 
+0

당신이하려는 일을 이해할 수는 없지만이 코드는 모든 종류의 나쁜 것입니다 ... – Jug6ernaut

답변

0

당신은 thread.join() 말을 내 영어 감사 죄송 . 그러면 메인 스레드, 즉 UI 스레드가 thread이라는 스레드가 완료 될 때까지 대기합니다. 즉, 응용 프로그램을 잠글 수 있습니다.

어쨌든 앱을 일시 중지하는 것을 왜 관리 하시겠습니까? Android는 모든 것을 자체 관리합니다. 활동을 시작하기 만하면 을 제외한 다른 방법으로 onPause()으로 전화하지 마십시오.

0

확실히 onPause를 호출하면 안됩니다. 이것은 os 콜백 메소드입니다.

0

일시 중지로 활동을 시작한 것이 아니라 OS이므로 onPause() 메소드를 호출 할 필요가 없습니다.

"무언가"가 발생하고 이전 활동이 일시 중지되면 다른 행동을 시작해야한다고 생각합니다. 도움이 되길 바랍니다.