2016-08-07 2 views
-1

웹 서비스에서 데이터를 가져 와서 SQLite 데이터베이스에 저장하고 있습니다. 가져 오는 레코드의 수가 더 많아서 데이터를 가져 오는 데 너무 많은 시간이 걸립니다. 데이터를 가져 오는 동안 앱을 사용할 수 있도록이 데이터를 가져 오려고합니다. 즉, 큰 파일을 다운로드하는 것처럼 백그라운드에서 데이터를 가져 오려고합니다. 다운로드하는 동안 나머지 작업을 수행 할 수 있습니다. 내 앱에서 어떻게 구현해야합니까?백그라운드에서 웹 서비스에서 데이터를 가져 오는 방법은 무엇입니까?

답변

0

이미 많은 답변이 있습니다. 어쨌든 여기 샘플 코드가 있습니다. MyAsyncClass

class MyAsyncClass{ 
@Override 
    protected Object doInBackground(Void... params) { 
    // write your method to fetch data from network 

} 
@Override 
    protected void onPostExecute(Object output) { 
    // do what ever you want to do with 'output' data 
} 
} 

로 innerClass 이름을 만들 지금이

MyAsyncClass myAsyncClass = new MyAsyncClass(); 
myAsyncClass.execute(); 

같은이 클래스 호출 할 수 있습니다 여기에 몇 가지 새로운 활동을 열 수 있습니다.

Intent intent = new Intent(this, yourActivityName.class); 
startActivity(intent); 
+0

저는 이미 AsncClass를 사용했습니다. 하지만 나는 데이터를 가져 오는 동안 다른 활동을 동시에 처리하려고합니다. –

+0

귀하의 질문에 따라 "당신은 배경 스레드에서 데이터를 가져오고 싶습니다"이 비동기를 위해, 당신은 이제까지 UI로하고 싶은 일을 할 수있는 충분한 시간입니다. – Rahul

+0

가져 오기 작업을 중지하지 않고 데이터를 가져 오는 동안 다른 작업으로 전환 할 수 있습니까? 그렇다면 의도에 대한 코드를 어디에 써야할까요? –

0

웹 서비스는 백그라운드에서 작동하는 asyncktask에서 호출해야합니다.

+0

저는 이미 AsncClass를 사용했습니다. 하지만 나는 데이터를 가져 오는 동안 다른 활동을 동시에 처리하려고합니다. –

0

처음에는 사용자 지정 Asynctask를 사용했지만 웹 서비스의 정보를 가져 오는 속도가 매우 느립니다. 이제 Retrofit을 사용하며 시간이 매우 짧습니다. 내 최선의 조언은 Retrofit을 구현하는 것입니다.

Retrofit

+0

StackOverflow에 오신 것을 환영합니다. [좋은 대답을주십시오] (http://stackoverflow.com/help/how-to-answer)에서 유용한 팁을 살펴보십시오. 이 경우 Retrofit을 사용하는 것이 도움이되지 않습니다. Retrofit을 사용하여 문제/질문을 해결하는 방법을 나타내는 것이 도움이됩니다. 또는 대답 대신 주석으로 게시 할 수 있습니다. – ishmaelMakitla

+0

나는 이미 AsncClass를 사용했다. 하지만 나는 데이터를 가져 오는 동안 다른 활동을 동시에 처리하려고합니다. –

+0

@ishmaelMakitla, 감사합니다. 나는 다음 개입을 위해 그것을 명심 할 것이다. – ccparram

관련 문제