15 초마다 서버에서 끌어 와야하는 끌어 오기 기반 응용 프로그램이 있습니다. 이를 위해 나는 정상적인 AsyncTask를 사용, 내 코드는 기본적으로 다음과 같습니다 AsyncTask가 무작위로 멈춤
protected Void doInBackground(Context... arg0) {
while (true && this.pull_on) {
pull_data();
TimeUnit.SECONDS.sleep(15)
};
는 지금은 앱이 바로 갑자기 당겨 중지 엄청난 문제가 있습니다.
No exeptions
, AsyncTask의 상태가 '실행 중'인 경우 'pull_on'변수가 'true'로 설정되어 있지만 끌어 오기가 중지됩니다.
나는 not reproduce
수 있습니다. 때때로 발생하며, 오랫동안 완벽하게 작동 할 수 있습니다.
누구에게 이런 일이 발생할 수있는 아이디어가 있습니까?
리팩토링하고 이것을 타이머로 구현해야합니까?
또한 서비스를 사용하면 어떤 이점이 있습니까? 배터리 전원은 문제가되지 않습니다.
도움 주셔서 감사합니다.
P. 나는 Activity가 AsyncTask를 형성하기 시작하기도한다고 덧붙여 야한다. 이렇게 'ApplicationManager.getCurrentActivity(). startActivity (myIntent)'하지만 문제가 될 필요는 없습니다.
P.P.S.
타이머 솔기는 내가 사용하기를 원하는 것으로 제한되어야합니다. 매 15 초마다 뭔가를하고 싶지만 어떤 특별한 경우에는 핑을 중지하고 다시 시작해야합니다. 그 이음새에 대한 해킹 양은 AsyncTask를 사용하여 더 많은 작업을 수행 할 수 있습니다.
. 그리고 pull_data()에서 무엇을하고 있습니까? – ben75
나는 어떤 메시지를 받았는지에 따라 JSON을 다시 얻는다. 나는 액티비티를 시작하거나, 데이터베이스에서 무엇인가를 업데이트한다. 또는 앱이 배경에 있다면 알림을 생성한다. – nickik