2013-04-29 4 views
4

백그라운드 스레드를 시작하면 스레드가 종료되기 전에 finishes()에서 시작된 활동이 발생하면 어떻게됩니까? 스레드가 종료되거나 살아있을 것입니까? 당신이 당신의 스레드 언제든지 죽을 수/응용 알고 들어활동이 끝나면 쓰레드가 죽는가?

new Thread(new Runnable() { 
       public void run() { 
        while (mProgressStatus > 0) { 


         // Update the progress bar 
         mHandler.post(new Runnable() { 
          public void run() { 
           progressbar.setProgress(mProgressStatus); 
          } 
         }); 
        } 
       } 
      }).start(); 
+0

스레드가 죽지 않고 메모리 누수가 발생합니다. –

+0

비슷한 질문이 여기에 있습니다 : [http://stackoverflow.com/questions/6208443/what-happens-to-an-android-thread-after-the-activity-that-created-it-is-destroye] – Martin

답변

-2

는 언제든지, 전화 땅에 충돌과 배터리가 꺼져 있고 당신이 그것을 알고 마지막 점은이에 꺼져있는 전화입니다 가장 빠른 방법.

Android 라이프 사이클과 관리는 복잡하고 실제 답변이 없습니다. Google에서는 이러한 종류의 의견을 말할 때 "automagic"이라는 단어를 많이 좋아하기 때문에 분명히 내부 정보를 제공하지 않기 때문입니다. 적어도 "평범한 오래된 영어"는 아닙니다.

이 항목에 대해 이야기하는 Android에 대한 Google IO는 처음입니다. 이에 대한 자세한 내용은 YouTube에서 돌아가서 Android IO주기에 대한 Google IO 검색을 검색 할 수 있습니다.

어쨌든 Android는 앱이 어떻게 그리고 얼마나 오랫동안 생존하는지에 대한 정보를 제공하지 않으며 적어도 고려해야 할 변수가 있습니다 : OS (Android)가하는 일과 사용자의 행동 사용자가 Android에서 처리해야하는 앱의 수명과 관련된 입력을 제공 할 때이 두 가지를 혼합 할 수도 있습니다.

0

스레드는 부모로부터 이상하게 달려 있습니다. 스레드가 Thread.run()에서 JVM으로 정상적으로 돌아 오거나 캐치되지 않은 예외로 인해 반환 될 때 스레드가 종료됩니다.

관련 문제