나는 표시 학생의 세부 사항 원격 MSSQL 데이터베이스에서 안드로이드로 PHP 스크립트를 사용하고 있습니다. 데이터는 잘 표시되지만을 표시하는 데 더 많은 시간이 걸리는 입니다. 데이터가 표시 될 때까지 검은 색 화면이 표시됩니다. 데이터를 신속하게 얻는 방법 및 변경해야 할 곳을 검은 색 화면이 나타나지 않게하려면?원격 데이터베이스에서 Android로 데이터를 빠르게 가져 오는 방법은 무엇입니까?
미리 감사드립니다.
나는 표시 학생의 세부 사항 원격 MSSQL 데이터베이스에서 안드로이드로 PHP 스크립트를 사용하고 있습니다. 데이터는 잘 표시되지만을 표시하는 데 더 많은 시간이 걸리는 입니다. 데이터가 표시 될 때까지 검은 색 화면이 표시됩니다. 데이터를 신속하게 얻는 방법 및 변경해야 할 곳을 검은 색 화면이 나타나지 않게하려면?원격 데이터베이스에서 Android로 데이터를 빠르게 가져 오는 방법은 무엇입니까?
미리 감사드립니다.
데이터를 비동기 적으로 가져와야합니다. 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) {
}
}
}
+1 멋진 대답. – Ricky