ANDROID APP
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
296 บทที่ 11 เทคนิคขั้นสูงสำาหรับพัฒนาแอพบนแอนดรอยด์<br />
ในกรณีที่เวอร์ชั่นของแอพไม่ตรงกัน และอาจมีชนิดของข้อมูลไม่ตรงกันนั้น คำสั่ง onRestore()<br />
จะแปลงข้อมูลให้โดยอัตโนมัติ ซึ่งเป็นเหตุผลที่ BackupManager จะต้องทำงานร่วมกับ<br />
appVersionCode หลังจากที่กู้ข้อมูลแล้ว สถานะของแอพก็จะเปลี่ยนไป และค่าของ newState ก็จะ<br />
ถูกอัพเดต<br />
กรรมวิธี: การสำรองข้อมูลไปไว้ที่คลาวด์<br />
BackupAgent ใช้ในการจัดเก็บข้อมูลของแอพในระหว่างที่แอพกำลังทำงาน สำหรับการจัดเก็บ<br />
ข้อมูลในรูปแบบไฟล์ เราจะใช้คำสั่ง BackupAgentHelper แทน ซึ่งคำสั่งนี้จะทำงานร่วมกับคลาส<br />
BackupAgent ที่รองรับการสำรองข้อมูล 2 ประเภทคือ<br />
m SharedPreferencesBackupHelper ใช้ในการสำรองข้อมูลไฟล์ SharedPreferences<br />
m FileBackupHelper ใช้ในการสร้างไฟล์ข้อมูลสำรอง<br />
ชุดคำสั่งที่ 11.12 ตัวอย่างของการใช้คำสั่ง BackupAgentHelper<br />
public class MyFileBackupAgentHelper extends BackupAgentHelper {<br />
@Override<br />
public void onCreate() {<br />
FileBackupHelper filehelper = new FileBackupHelper(this,<br />
DATA_FILE_NAME);<br />
addHelper(FILE_HELPER_KEY, helper);<br />
SharedPreferencesBackupHelper xmlhelper<br />
= new SharedPreferencesBackupHelper(this, PREFS);<br />
addHelper(PREFS_BACKUP_KEY, helper);<br />
}<br />
}<br />
BackupAgent ทุกตัวจะต้องเรียกใช้เมธอด onCreate() ซึ่ง BackupAgent สามารถมี<br />
BackupHelper ได้หลายตัว การสร้างอินสแตนซ์ของคลาส BackupAgentHelper ไม่จำเป็นต้อง<br />
โอเวอร์ไรด์เมธอด onBackup และ onRestore เพราะว่าการทำงานทั้งหมดถูกควบคุมโดย<br />
BackupAgent อยู่แล้ว<br />
กรรมวิธี: การสั่งให้สำรองและกู้คืนข้อมูล<br />
เราจะต้องกำหนดการสั่งให้แก่ BackupManager เพื่อให้สั่งสำรองและกู้คืนข้อมูลได้ ด้วยการ<br />
เพิ่มแอททริบิวต์ android:backupAgent ลงไปในไฟล์ Manifest ดังแสดงในชุดคำสั่งที่ 11.13 ดังนี้<br />
ชุดคำสั่งที่ 11.13 AndroidManifest.xml<br />
<br />