2012-12-14 24 views
0

내 활동에서 서비스를 초기화 한 직후에 응용 프로그램이 검은 색 화면으로 바뀌 었습니다. 오류 또는 경고 메시지가 표시되지 않았습니다. 잠시 후 응용 프로그램이 이미 응답하지 않고 시간 제한이 지나도 서비스가 서버로 정보를 업데이트하지 않습니다. 저는 매분마다 서비스를 사용하여 사용자 위치를 서버에 지속적으로 보냈습니다. 서비스가 내 활동에서 초기화됩니다. 또한 AndroidManifest.xml에도 서비스가 포함되었습니다.서비스가 시작된 후 화면이 검은 색으로 변합니다.

LocationService 은 아래 코드는 내 주요 활동에서 서비스를 호출하는 방법 아래는

public class LocationService extends Service{ 

@Override 

public IBinder onBind(Intent arg0){ 
    return null; 
} 


private String TAG = "LocationService"; 


@Override 
public void onCreate(){ 
    super.onCreate(); 
      boolean isUpdateResult = true; 

    try{ 
     while(isUpdateResult){ 

      new CountDownTimer (60000, 1000) { 



       public void onTick(long millisUntilFinished) { 

       } 

       public void onFinish() { 
        //Send information to server       

       }.start(); 
     } 
    } 
    finally{ 

    } 
} 

@Override 
public void onDestroy(){ 
    super.onDestroy(); 
} 
} 

서비스

의 내 구조입니다.

public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.display_screen); 

    startService(new Intent(Web_Slider.this, 
      LocationService.class)); 
    } 

검은 화면의 원인은 무엇입니까? 내가 여기서 뭔가를 놓친거야? 의견을 보내 주시면 감사하겠습니다. 미리 감사드립니다.

+0

display_screen 레이아웃의 정의는 무엇입니까? – atk

+0

isUpdateResult가 false로 설정된 곳은 어디입니까? 무한 루프 일 수 있습니다. – gsingh2011

+0

@atk 주요 활동 내에서 다른 기능을 사용하고 있습니다. 나는 startservice를 초기화하는 코드를 첨부한다. –

답변

0

나는 이것을 해결할 수있었습니다. 루프의 시작 부분에 new CountDownTimer (60000, 1000)을 실행하면 화면이 검은 색 화면으로 바뀝니다. 착오가 없다면 지속적으로 새로운 CountDownTimer를 만들어야 만 정상적으로 기능 할 수 없습니다. 넣는 올바른 방법은 While (isUpdateResult)입니다. 이 함수는 .start()가 있기 때문에 지속적으로 카운트 다운 타이머를 시작합니다. after onFinish(); 그래서 while 루프는 필요하지 않습니다.

  new CountDownTimer (60000, 1000) { 



      public void onTick(long millisUntilFinished) { 

      } 

      public void onFinish() { 
       //Send information to server       

      }.start(); 
관련 문제