當我重新安裝我的應用程序而不先刪除它時會發生什麼?當我重新安裝我的android應用程序時會發生什麼
我正在尋找的是,當我的應用程序正在運行,和我做了重新安裝後,
Activity.OnDestroy()沒有被調用。
我必須在應用程序關閉之前做些事情。
當我重新安裝我的應用程序而不先刪除它時會發生什麼?當我重新安裝我的android應用程序時會發生什麼
我正在尋找的是,當我的應用程序正在運行,和我做了重新安裝後,
Activity.OnDestroy()沒有被調用。
我必須在應用程序關閉之前做些事情。
使用onPause()
。根據this,onPause()
是唯一的方法是保證被調用。後者可能不會被調用onStop()
和onDestroy()
。
但是,AFAIK無法告訴爲什麼您的應用程序正在暫停(例如重新安裝)。檢測重新安裝的唯一方法是這樣的:
SharedPreferences
來存儲您的應用程序的版本代碼。PackageManager
)。如果存在差異,請在升級應用程序時執行您需要執行的操作,並覆蓋SharedPreferences
中的以前的版本代碼。另請注意,這需要版本代碼在重新安裝之間碰撞。如果您只是在使用包含相同版本代碼的軟件包adb install -r
,則無法分辨。
閱讀生命週期描述 - onDestroy()不保證被調用 - 唯一可靠的回調是onPause() - 所以你必須在那裏做你的事情。
我正在添加一個標誌,以瞭解我的應用是否會導致onPause。所以我消除了大部分或甚至所有情況 – piojo
這可能不是一個好主意。您的應用也可以通過以下方式進行暫停:電話呼叫,用戶點擊/回家,用戶點擊通知等。 – Felix