2012-03-03 3 views
1

아래 코드를 사용하고 있습니다.android 스레드 및 서비스

import android.app.Activity; 
import android.os.Bundle; 
import android.provider.ContactsContract.Data; 
import android.util.Log; 

public class ActivityDemoActivity extends Activity { 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main); 
     new Thread(new Runnable() { 

      @Override 
      public void run() { 
       int i=0; 
       while(true){ 
        try { 
         Thread.sleep(100); 
        } catch (InterruptedException e) { 
         // TODO Auto-generated catch block 
         e.printStackTrace(); 
        } 
        Log.i("DATA", "Data.CONTENT_TYPE......"+(i++)); 
       } 

      } 
     }).start(); 
    } 
    @Override 
    public void onBackPressed(){ 
     finish(); 
    } 
} 

기기의 뒤로 버튼을 누르면 여전히 스레드가 백그라운드에서 작동합니다.

내 질문

  1. 스레드가 중지됩니다 때 ...인가?
  2. 그러면 우리는 왜 안드로이드 서비스가 필요합니까?

감사합니다.

답변

1

답변 : 1 -이 100 밀리 초 이 후 정지합니다 - 당신은 깨어나서 서비스 같은 백그라운드에서 작동하는 뭔가가 필요 그것을 시작하는 사용자가없이 기능을 수행한다. 또는 사용자에게 UI가 고정되어 있다고 가정하는 대신 사용자에게 어떤 작업이 일어 났음을 알리는 progressDialog를 갖고 싶습니다. 백그라운드 서비스가 없으면 UI에 작업이 진행되는 동안 응답하지 않는 앱이 남아 있습니다.

+0

안녕, 당신의 첫 번째 대답 100 milisec은 잠자기 시간뿐입니다. 스레드를 종료하지 않습니다. 지금은 로그 작성 중입니다. 15 분 전에 앱을 종료했습니다. 몇 초 만에 스레드를 사용하여 동일한 작업을 수행 할 수 있다고 말한대로 대답하십시오. – user861973

1

서비스는 기본적으로 당신이 어떤 네트워크 운영을 사용하는 background.If에서 장기 실행 응용 프로그램을 수행하거나 숙고 또는 같은 재생에 사용되는, 서비스는 ... 아주 많이 도움이됩니다