2011-10-12 7 views
0

나는 표시 학생의 세부 사항 원격 MSSQL 데이터베이스에서 안드로이드로 PHP 스크립트를 사용하고 있습니다. 데이터는 잘 표시되지만을 표시하는 데 더 많은 시간이 걸리는 입니다. 데이터가 표시 될 때까지 검은 색 화면이 표시됩니다. 데이터를 신속하게 얻는 방법 및 변경해야 할 곳을 검은 색 화면이 나타나지 않게하려면?원격 데이터베이스에서 Android로 데이터를 빠르게 가져 오는 방법은 무엇입니까?

미리 감사드립니다.

답변

1

데이터를 비동기 적으로 가져와야합니다. AsyncTask를 참조하십시오. 원격 호출이 너무 느린 경우 캐싱에 대해서도 생각할 수 있습니다.

new Thread(new Runnable() { 

     @Override 
     public void run() { 
      //loaddata 
     } 
    }).start(); 

당신이 UI 스레드에 액세스 할 때마다 앱이 캐시 디렉토리를 가질 수 있습니다 안드로이드에서 runOnUiThread 방법을


를 사용한다는 것을 명심하십시오. 데이터를 캐싱하고 신선한 데이터가 백그라운드에서로드되는 동안이 데이터를 표시하는 좋은 방법입니다.

Datastructure Serializable을 사용하면이 캐싱 디렉토리에 데이터를 기록하고로드 속도를 높일 수 있습니다. 여기

캐싱 데이터에 대한 몇 가지 Snippeds는 :

private void loadData() { 
    ObjectInputStream in; 
    try { 
     FileInputStream fis = new FileInputStream(new File(getCacheDir(), 
       "cache.dat")); 
     in = new ObjectInputStream(fis); 
     data = (Data) in.readObject(); 
    } catch (IOException e) { 
     e.printStackTrace(); 
    } catch (ClassNotFoundException e) { 
     e.printStackTrace(); 
    } 
} 

private void saveData() { 
    if (data.size() > 0) { 
     File file = new File(getCacheDir(), "cache.dat"); 

     ObjectOutputStream out; 
     try { 
      file.createNewFile(); 
      out = new ObjectOutputStream(new FileOutputStream(file)); 
      out.writeObject(data); 
      out.close(); 
     } catch (IOException e) { 
     } 
    } 
} 
+0

+1 멋진 대답. – Ricky

관련 문제