Skip to content

小程序運行機制

1.小程序生命週期

小程序從啟動到最終被銷毀,會經歷多種狀態,不同狀態下表現不同。

1.1小程序啟動

小程序會有兩種情况,一種是冷開機,一種是暖開機;

  • 暖開機:指用戶在一定時間後想要重新打開已打開的小程序時,將後臺運行的小程序切換到前臺的過程。
  • 冷開機:當用戶第一次打開小程序或被宿主應用主動銷毀後重新打開小程序,此時小程序需要重新加載啟動,即冷開機。

1.2前臺/後臺狀態

小程序啟動後,用戶直接可以看到小程序的介面,此時小程序處於前臺狀態。

當用戶按一下右上角的小程序控制按鈕「關閉」小程序或按手機上的Home鍵離開宿主應用時,小程序沒有被銷毀,而是在後臺運行,此時小程序還可以短暫運行一小段時間,但部分API的使用會受到限制。

切換到後臺的管道包括但不限於以下幾種:

  • 點擊右上角膠囊按鈕離開小程序;
  • iOS從荧幕左側右滑離開小程序;
  • 安卓點擊返回鍵離開小程序;
  • 小程序前臺運行時直接把宿主應用切換到後臺(手勢或Home鍵);
  • 小程序前臺運行時直接鎖屏

當用戶再次進入用戶端並打開小程序時,小程序將從後臺運行到前臺。

1.3小程序銷毀機制

如果用戶很久沒有使用小程序,或者系統資源緊張,小程序會被「銷毀」,即完全終止運行具體而言包括以下幾種情形:

  • 當小程序進入後臺並被「掛起」後,如果很長時間(現時是30分鐘)都未再次進入前臺,小程序會被銷毀。
  • 當小程序佔用系統資源過高,可能會被系統銷毀或被宿主應用主動回收。
  • 在iOS系統上,當宿主應用在一定時間間隔內連續收到系統記憶體告警時,會根據一定的策略,主動銷毀小程序,並提示用戶運行記憶體不足,請重新打開該小程序。

具體策略會持續進行調整優化。

2.小程序打開邏輯

2.1冷開機打開頁面

小程序冷開機時,打開的頁面有以下情况;

  • 若啟動的場景不帶path,則進入首頁;
  • 若啟動的場景帶path,則啟動進入對應path的頁面。

2.2暖開機打開頁面

小程序暖開機時,打開的頁面有以下情况;

  • 若啟動的場景中不帶path,則保留上次的瀏覽的狀態;
  • 若啟動的場景中帶有path,則啟動進入到對應path的頁面。