【Jetpack】ViewModel使用技巧

ViewModel的基本使用方法,這里不再講解

ViewModel優點
  • 可以在屏幕旋轉之后,仍然保持之前的狀態,這樣就不用刻意去處理屏幕旋轉事件
  • 可以輕松實現作用域內的單例模式
  • 可以輕松在作用域內進行數據共享
ViewMode使用注意
  • 不能將Activity作為Context傳給ViewModel
  • 因為ViewModel中會處理耗時工作,可能會在Activity.Destroy之后繼續持有Activity,導致內存泄漏
  • 如果ViewModel需要獲取資源,建議使用Application作為Context
  • 有兩種方式可以獲取Application,一種是保存Application的單例對象,一種是通過ViewModelProvider去自動創建
通過ViewModelProvider自動創建帶Context的ViewModel

由于Application是單例的,ViewModelProvider可以實現自動組裝

class ContextViewModel(application: Application) : AndroidViewModel(application)val viewModel = ViewModelProvider(this)[ContextViewModel::class.java]
val context = viewModel.getApplication<Application>()

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/38358.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/38358.shtml
英文地址,請注明出處:http://en.pswp.cn/web/38358.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Centos7修改yum源

安裝好系統后&#xff0c;網絡能通信&#xff0c;源也沒有配置&#xff0c;但是安裝軟件失敗。 解決辦法&#xff1a;配置阿里yum源 # curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo # yum clean all # yum make cache再次安裝軟…

AI安全研究滯后?清華專家團來支招

在21世紀的科技浪潮中&#xff0c;人工智能&#xff08;AI&#xff09;無疑是最為耀眼的一抹亮色。隨著技術的不斷突破&#xff0c;AI正以前所未有的速度融入我們的日常生活&#xff0c;重塑著社會、經濟乃至人類文明的面貌。然而&#xff0c;在這股洶涌澎湃的發展洪流中&#…

二分查找1

1. 二分查找&#xff08;704&#xff09; 題目描述&#xff1a; 算法原理&#xff1a; 暴力解法就是遍歷數組來找到相應的元素&#xff0c;使用二分查找的解法就是每次在數組中選定一個元素來將數組劃分為兩部分&#xff0c;然后因為數組有序&#xff0c;所以通過大小關系舍棄…

七天速通javaSE:第五天 數組基礎

文章目錄 前言一、認識數組二、數組的聲明和創建1. 聲明數組變量2. 創建數組3. 變量的初始化&#xff08;賦值&#xff09;3.1 靜態初始化3.2 動態初始化 3. 示例 三、數組的使用1. 循環1.1 普通for循環1.2 For-Each 循環 2. 數組作為函數的參數和返回值 前言 本文將為大家介紹…

Win11 Python3.10 安裝pytorch3d

0&#xff0c;背景 Python3.10、cuda 11.7、pytorch 2.0.1 閱讀【深度學習】【三維重建】windows10環境配置PyTorch3d詳細教程-CSDN博客 1&#xff0c;解決方法 本來想嘗試&#xff0c;結果發現CUB安裝配置對照表里沒有cuda 11.7對應的版本&#xff0c;不敢輕舉妄動&#x…

0051__win - RegisterWaitForSingleObject的例子

win - RegisterWaitForSingleObject的例子_registerwaitforsingleobject msdn-CSDN博客

DP:子序列問題

文章目錄 什么是子序列子序列的特點舉例說明常見問題 關于子序列問題的幾個例題1.最長遞增子序列2.擺動序列3.最長遞增子序列的個數4.最長數對鏈5.最長定差子序列 總結 什么是子序列 在計算機科學和數學中&#xff0c;子序列&#xff08;Subsequence&#xff09;是指從一個序列…

c語言的燙燙燙燙燙??

當初學習C語言時&#xff0c;對于一些特殊的打印輸出可能會感到困惑&#xff0c;比如會出現一堆亂碼燙燙燙的情況。其實這是因為在C語言中&#xff0c;對于字符類型和數字類型之間的隱式轉換可能會導致打印輸出的結果不符合預期。這并不意味著程序員"燙"&#xff0c;…

[激光原理與應用-96]:激光器研發與生產所要的常見設備(大全)與儀器(圖解)

目錄 一、激光器制造設備 二、測試與校準設備 2.1 光功率計&#xff1a; 1、工作原理 2、主要功能 3、應用場景 4、測量方法 5、總結 2.2. 激光束質量分析儀&#xff1a; 1、概述 2、主要功能和特點 3、工作原理 4、常見品牌和型號 5、應用領域 6、總結 2.3 光…

力扣-2529. 正整數和負整數的最大計數

文章目錄 力扣題目代碼工程 力扣題目 給你一個按 非遞減順序 排列的數組 nums &#xff0c;返回正整數數目和負整數數目中的最大值。 換句話講&#xff0c;如果 nums 中正整數的數目是 pos &#xff0c;而負整數的數目是 neg &#xff0c;返回 pos 和 neg二者中的最大值。 注…

機器人運動范圍檢測 c++

地上有一個m行n列的方格&#xff0c;一個機器人從坐標&#xff08;0&#xff0c;0&#xff09;的格子開始移動&#xff0c;它每次可以向上下左右移動一個格子&#xff0c;但不能進入行坐標和列坐標的位數之和大于k的格子&#xff0c;請問機器人能夠到達多少個格子 #include &l…

基于大數據架構的情感分析

1 項目介紹 1.1 研究目的和意義 隨著大數據時代的到來&#xff0c;電影產業積累了海量的用戶評論數據&#xff0c;這些數據中蘊含著觀眾的情感傾向與偏好信息&#xff0c;為電影推薦和市場策略制定提供了寶貴資源。然而&#xff0c;如何高效地從這浩瀚的數據海洋中提煉出有價…

QT5:在窗口右上角顯示圖標

目錄 一、環境與目標 二、實現邏輯&#xff08;純代碼&#xff09;與效果 三、參考代碼 四、總結 一、環境與目標 qt版本&#xff1a;5.12.7 windows 11 下的 Qt Designer &#xff08;已搭建&#xff09; 目標&#xff1a;使用嵌套布局的方式將兩個按鈕顯示在窗口右上角…

《大海》這歌為何經久不衰?你看歌詞寫的多美妙!

《大海》這歌為何經久不衰&#xff1f;你看歌詞寫的多美妙&#xff01; 《大海》是一首由陳大力作詞&#xff0c;陳大力、陳秀男作曲&#xff0c;Ricky Ho編曲&#xff0c;張雨生演唱的國語流行歌曲。該曲收錄在張雨生1992年11月30日由飛碟唱片發行的同名專輯《大海》中。 作為…

【JavaEE精煉寶庫】多線程進階(2)synchronized原理、JUC類——深度理解多線程編程

一、synchronized 原理 1.1 基本特點&#xff1a; 結合上面的鎖策略&#xff0c;我們就可以總結出&#xff0c;synchronized 具有以下特性(只考慮 JDK 1.8)&#xff1a; 開始時是樂觀鎖&#xff0c;如果鎖沖突頻繁&#xff0c;就轉換為悲觀鎖。 開始是輕量級鎖實現&#xff…

廣州外貿建站模板

Yamal外貿獨立站wordpress主題 綠色的亞馬爾Yamal外貿獨立站wordpress模板&#xff0c;適用于外貿公司建獨立站的wordpress主題。 https://www.jianzhanpress.com/?p7066 賽斯科Sesko-W外貿建站WP主題 適合機械設備生產廠家出海做外貿官網的wordpress主題&#xff0c;紅橙色…

Dify自定義工具例子

1.天氣&#xff08;JSON&#xff09; {"openapi": "3.1.0","info": {"title": "Get weather data","description": "Retrieves current weather data for a location.","version": "v1…

動態規劃——打家劫舍(C++)

好像&#xff0c;自己讀的書確實有點少了。 ——2024年7月2日 198. 打家劫舍 - 力扣&#xff08;LeetCode&#xff09; 題目描述 你是一個專業的小偷&#xff0c;計劃偷竊沿街的房屋。每間房內都藏有一定的現金&#xff0c;影響你偷竊的唯一制約因素就是相鄰的房屋裝有相互連…

Linux 靜態庫和動態庫

不管是Linux還是Windows中的庫文件其本質和工作模式都是相同的, 只不過在不同的平臺上庫對應的文件格式和文件后綴不同。程序中調用的庫有兩種 靜態庫和動態庫&#xff0c;不管是哪種庫文件本質是還是源文件&#xff0c;只不過是二進制格式只有計算機能夠識別&#xff0c;作為一…

【Node-RED 4.0.2】4.0版本新增特性(官方版)

二、重要功能 *1.時間戳格式改進 過去&#xff0c;node-red 只提供了 最原始的 timestamp 的格式&#xff08;1970-01-01 ~ now&#xff09; 但是現在&#xff0c;額外增加了 2 種格式&#xff1a; ISO 8601 -A COMMON FORMAT&#xff08;YYYY-MM-DDTHH:mm:ss:sssZ&#xff…