.net中如何同步获取数据方式增加一样数据自动刷新列表_期待已久的动态数据库工具终于来了!...
最新的 Android Studio 4.1 (目前處于 Canary 版本) 內置了叫作?Database Inspector (數據庫檢查器) 的工具,它可以幫助開發者在已運行的應用中檢查、請求以及修改數據庫。
△ Database Inspector 可用于修改數據,
就像修改電子表格一樣有了 Database Inspector,修改數據庫就和編輯電子表格一樣簡單。如果您使用 Jetpack Room并觀察請求結果,對數據庫的修改會直接體現在應用里。本文中,我們將會在 Sunflower 應用中使用 Database Inspector 來測試一些邊界值用例。Sunflower 是一款園藝類應用,它向開發者展示了基于 Android Jetpack 進行應用開發的最佳實踐。所以強烈推薦大家克隆這個代碼倉庫,并且按照本文的操作嘗試一下。- Jetpack Room?持久化庫https://developer.android.google.cn/topic/libraries/architecture/room
- 代碼倉庫https://github.com/android/sunflower
概覽
Sunflower 應用的 UI 包含兩個標簽頁。先看一下植物目錄標簽頁,里面列出了可以添加到我的花園的植物。在右上角有一個篩選按鈕,點擊該按鈕會按生長區篩選植物,出現如下列表:
△ 點擊該按鈕來按照植物生長區篩選植物
可以很直觀地看到,這個按鈕會根據一些條件來篩選植物。假設我們對整個工程完全不了解,希望通過 Database Inspector 來搞清楚如何實現篩選功能。
從菜單欄依次選擇 View > Tool Windows > Database Inspector,就能在 Android Studio 里打開 Database Inspector。初次打開工程的時候,需要靜待工程編譯完成后即可出現 Database Inspector 的選項。
△ 在菜單欄中依次選擇 View > Tool Windows > Database Inspector 來打開 Database Inspector這樣就打開了 Database Inspector:△ Database Inspector 窗口運行 Database Inspector 需要在 API Level 26 或者更高的設備上運行應用,在下拉菜單里選擇該應用的進程:
△ 在下拉菜單中選擇運行中的應用進程
選擇所要檢查的應用進程之后,數據庫的架構就會出現在下面的面板上。如果要查看 Sunflower 數據庫表,需要找到 Databases 并展開 sunflower-db:△ 一旦選擇了進程,應用相關的數據庫就會列出來回到應用,我們看一下經過篩選的植物列表:?這個列表里有 Avocado (鱷梨)、Grape (葡萄)、Orange (橙子) 和 Tomato (番茄)。如果我按照植物名稱進行排序,那么要找 Avocado 的話就會很方便。所以我們可以看看 Database Inspector 可不可以做到這點。首先,雙擊 Database Inspector 里的 plants 表來顯示表里的數據。數據是以默認每頁 50 條記錄來顯示,不過如果數據總數更短,那么每頁的結果數量和頁數也會發生變化。點擊名稱列可以讓植物表按照名稱進行排序。正如我們所想,Avocado 已經排在列表的前面了,它就在數據表的第二行。請求數據庫
看一下 Avocado 的數據輸入,在應用中可以使用 growZoneNumber 進行篩選。要驗證這一點,我們運行一個請求,將 growZoneNumber 設置為 9,對應結果應該是 Avocado。實際上,這個請求已經在 PlantDao.kt 出現了,我們可以直接通過 Room 的 @Query 注解來調用這個請求。每個 @Query 注解的代碼行數旁邊都有一個運行小圖標。
當我點擊運行圖標來請求 getPlantsWithGrowZoneNumber() 并且選擇對應的數據庫的時候,會彈出一個對話框讓我們填寫: growZoneNumber 的值。
△ 您可以直接通過 @Query 注解來運行請求這里我們輸入 9 然后點擊 Run 來查看請求結果。除此之外,我們也可以在工具窗口里輸入我們自己的請求并運行。這樣能夠提供更大的自由度,也不會受限于 Dao 接口里的請求語句定義。要運行我們自己的查詢語句,點擊 Run Query 并且從右側新打開的標簽頁選擇 plants 數據庫。△ 點擊 Run Query 并且選擇應用數據庫然后,在數據庫下拉菜單旁邊的文本框里輸入下面這句查詢語句,并點擊 Run。Select * from plants where growZoneNumber=9△ 您可以在 Database Inspector 里執行 SQL 請求大家可以看到,這里請求的篩選結果和應用里開啟篩選器的時候是一樣的。修改以及調試數據庫
Database Inspector 使得調試應用變得輕而易舉,它還可以讓開發者直接修改設備上已運行應用的數據庫值。首先,我想在應用 UI 上測試一下較長的植物名稱。我們打算使用 Database Inspector 直接修改數據庫里的值,而不是通過修改數據源再刷新數據來進行測試。△ 您可以在 Database Inspector 里編輯數據庫現在這里的數據元素已經可以編輯,我將這里的 Apple 改為 A really special type of Apple,然后點確認。如果您也在同步進行操作,您可以輸入一些期望長度的名稱數據在 UI 中進行測試。△ 如果您的應用使用 Jetpack Room 并且監聽請求結果,那么您無需重啟應用就能看到數據的變化回到應用會發現我們什么操作都沒做,應用就已經顯示了最新的數據。如果您的應用使用 Jetpack Room,并且監聽著請求結果 (使用 LiveData/Flow),您就沒必要發起數據庫請求來刷新數據。否則,根據您應用觸發請求的方式,可能需要重啟應用或者重新打開相關的 activity 或者 fragment 才可以。這也算是遷移到 LiveData 或者 Flow的一個不錯的理由,這樣也能發揮 Database Inspector 的全部潛能。再來看看應用,可以發現這里的 CardView 并沒有很好地顯示較長的植物名稱。我會在未來修復這個問題,接下來我們先來看看下面的測試。△ 應用并沒有很好地處理較長的名字每個植物都有不同的澆水間隔,我想試試看如果錯過了澆水的日子會發生什么。要實現這個目的,我們需要在花園里添加一些植物,但是首先,這里我們先在 Database Inspector 里勾選 Live updates (實時刷新)。當啟用 Live updates 之后,Database Inspector 會自動顯示應用里對數據庫所做的修改。△ 選擇 Live updates然后回到我的花園標簽頁,添加一些植物,比如 Avocado 和 Eggplant,但是首先,回到 Database Inspector,然后雙擊 garden_plantings 來觀察數據表。請注意觀察圖片,當添加新植物的時候,garden_plantings 表會有哪些變化。
△ Database Inspector 會自動顯示數據修改這些植物的澆水周期都是三天。當然我不會等待三天來測試這個功能,這里我們直接編輯數據庫,然后修改?last_watering_day 的值。我們再回到 Database Inspector,雙擊進入 garden_plantings 數據表,last_watering_day 位于數據庫的最后一列。我會把兩個記錄的 last_watering_day 值修改為目前日期稍早一些時候。△ 對數據庫的修改會直接展示出來好吧,看上去好像調整的日期有點太靠前了,不過應該也能達到測試的目的。應用的 UI 似乎正常顯示了所需澆水的日期。在下一步開發中,我們也許可以增加一個提醒功能,當已經超出澆水日期的時候,可以向用戶發出提醒。快來嘗試新推出的 Database Inspector!歡迎大家和我們分享心得。如果遇到任何問題,請在這里提出:?https://issuetracker.google.com/issues/new?component=192708&template=840533&title=%23database-inspector推薦閱讀
?點擊屏末?|?閱讀原文?|?下載最新 Android Studio 4.1 Canary 版本,即刻體驗 Database Inspector 工具!總結
以上是生活随笔為你收集整理的.net中如何同步获取数据方式增加一样数据自动刷新列表_期待已久的动态数据库工具终于来了!...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 回答有30奥币选择中60澳币
- 下一篇: ios软件商店上架老被打回_安卓神级特殊