App lifecycle
การสร้าง lifecycle ของ app เหมือนกันเช่นเดียวกับ JavaScript project template สำหรับ Metro Style Apps โดย app lifecycle เริ่มต้นเมื่อ app starts และจบเมื่อ app closed. Project template มีการนำ generic pattern สำหรับการจัดการ app lifecycle. เมื่อคุณสร้าง app หนึ่ง ที่อยู่บนรูปแบบพื่นฐานของ project template คุณหน้าจะต้องการเพิ่ม code เพื่อเพิ่มการตรวจจับลำดับการทำงานเช่การตรวจจับ data เมื่อ app อยู่ในสถาณะ suspended หรือ terminated.
default.html ไฟล์ถูกกำหนดให้เริ่มตอนเริ่มต้นโปรแกรมจากแต่ละ template เช่นเดียวกับ JavaScript ไฟล์สำหรับ default.html ที่รวมถึงกระบวนการที่เรียก WinJS.Application.start เริ่มต้นการทำงานของ app event.
var app = WinJS.Application; // . . . app.start();
วิธีที่ดีในการเพิ่ม code ที่สัมพันธกับ app lifecycle management ใน default.js การสร้าง default.js เป็นเช่นเดียวกันทั้งหมดของ project template ไฟล์ที่ include code ที่ตรวดจับ event ของ WinJS ใน event onactivated event ที่เกินขึ้น Windows Runtime activation เกิดขึ้นใน code onactivated event ถูกตรวจสอบไม่ว่า app จะเริ่มทำงานจาก Windows start screen และเรียก WinJS.UI.processAll. ฟังชั่น processAll โหลดทุก control ที่รวมอยู่ใน data-win-control แอกทิบิวใน DIV element ของ control นี้คือ code ที่มี processAll function
app.onactivated = function (eventObject) { if (eventObject.detail.kind === Windows.ApplicationModel .Activation.ActivationKind.launch) { // TODO: Initialize your application here. if (eventObject.detail.previousExecutionState !== Windows.ApplicationModel .Activation.ApplicationExecutionState.terminated) { // TODO: This application has been newly launched. Initialize // your application here. } else { // TODO: This application has been reactivated from suspension. // Restore application state here. } WinJS.UI.processAll(); } };
ถ้าคุณมี code ที่ต้องการให้ทำงานตอน app setup เมื่ออยู่ใน initial state คุณควร include code ที่ตรวจับการทำงานของ WinJS ใน onactivated event และคุณควรจะ include code เพิ่มถ้า app มีการ reactivated หลังจากการอยู่ใน suspended. เพิ่ม code เมื่อ code หลัง comment ที่แสดงอยู่
กล่าวถึงคร่าว ๆ, Template ไม่ได้รวม code ที่ตรวจจับ suspending ของ app การตรวจจับสถานะ app ของ code ของคุณ คุณสามารถเพิ่ม code ที่ WinJS oncheckpoint event handler, ที่แสดงใน default.js หรือเพิ่ม code ที่ register สำหรับ Windows Runtime suspending event ที่เรียก oncheckpoint
app.oncheckpoint = function (eventObject) { // TODO: This application is about to be suspended. Save any state // that needs to persist across suspensions here. You might use the // WinJS.Application.sessionState object, which is automatically // saved and restored across suspension. If you need to complete an // asynchronous operation before your application is suspended, call // eventObject.setPromise(). };
คุณสามารถใช้ WinJS หรือ Windows Runtime event หรือใช่ร่วมกันทั้งคู่ในการจัดการ app lifecycle. ไม่ว่าจะ WinJS event และ functions ที่เพียงพอสำหรับ app ทั้งหมด
นี้คือบางส่วนของ WinJS event และ function ที่สัมพันธกับ app lifecycle
No comments:
Post a Comment