20.11.2016 Views

ANDROID APP

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

ตัวจัดการข้อมูลสำารองบนระบบปฏิบัติการแอนดรอยด์<br />

295<br />

BackupManager จะทำงานร่วมกับแอพผ่านทาง Backup Agent ในการสร้าง Backup Agent<br />

นั้น ผู้พัฒนาสามารถใช้งานคลาส BackupAgent ภายในคลาสอื่นๆ ได้ ซึ่งมีเมธอดจำนวน 2 ตัวที่จะต้อง<br />

โอเวอร์ไรด์ คือ onBackup() จะเริ่มทำงานเมื่อเมธอด dataChanged() ทำงาน และ onRestore()<br />

จะเริ่มทำงานเมื่อเมธอด requestRestore() ทำงาน<br />

public class MyBackupAgent extends BackupAgent {<br />

@Override<br />

public void onCreate() {<br />

...<br />

}<br />

}<br />

@Override<br />

public void onBackup(ParcelFileDescriptor oldState,<br />

BackupDataOutput data,<br />

ParcelFileDescriptor newState){<br />

...<br />

}<br />

@Override<br />

public void onRestore(BackupDataInput data, int appVersionCode,<br />

ParcelFileDescriptor newState){<br />

...<br />

}<br />

ในเมธอด onBackup() จะมีค่าพารามิเตอร์จำนวน 3 ตัวที่จะส่งค่าไปยัง Backup Manager คือ<br />

m oldState – ส่งค่าสถานะการสำรองข้อมูลครั้งล่าสุด<br />

m data – ข้อมูลที่ต้องการสำรอง<br />

m newState – อัพเดตสถานะปัจจุบันของการสำรอง ในที่นี้ค่าสถานะนี้จะกลายเป็นค่า<br />

oldState ในการสำรองข้อมูลครั้งต่อไป<br />

เวลาใช้งานคำสั่ง onBackup() เราต้องตรวจสอบค่าของ oldState ก่อนที่จะส่งไปยัง<br />

BackupManager ถ้าค่าตรงกันก็ไม่ต้องสำรองข้อมูล แต่ถ้าไม่ตรงกัน พารามิเตอร์ data ก็จะถูกส่งไป<br />

ยัง Backup Manager และอัพเดตค่าของ newStat<br />

ในเมธอด onRestore() จะมีค่าพารามิเตอร์จำนวน 3 ตัวที่จะส่งค่าไปยัง BackupManager คือ<br />

m data – ข้อมูลที่สำรองครั้งล่าสุด<br />

m appVersionCode – เลขเวอร์ชั่นของแอพในระหว่างที่สำรองข้อมูล ซึ่งค่านี้จะกำหนดอยู่<br />

ในไฟล์ Manifest โดยใช้ชื่อแอททริบิวต์ว่า android:versionCode<br />

m newState() – เขียนสถานะปัจจุบันเพื่อใช้เป็นจุดกู้คืน (Restore Point)

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!