Re: [問題] 關於 Widget 傳值

看板AndroidDev作者 (小恐龍)時間11年前 (2012/11/19 22:57), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《han01122 (屎倒淋頭)》之銘言: : 標題: [問題] 關於 Widget 傳值 : 時間: Mon Nov 19 03:11:55 2012 : : 最近接觸android : 想寫一個時間設置+倒數計時器 : 然後傳入桌面小部件 : : 做法是先在主activity計算時,分,秒 : : 計算完後開始倒數距離設置時間還有多久 : : 想把計算出的值傳入widget : : 請問有什麼方法在widget上接收呢 : : 使用SharedPreferences方法可行嗎? : : -- : ※ 發信站: 批踢踢實業坊(ptt.cc) : ◆ From: 114.33.134.136 : → cooper6334:broadcast 11/19 12:45 : → han01122:請問我要如何取得主activity的值呢 11/19 16:14 : 推 ak2840:用File存取數值比較容易 11/19 21:25 : 推 sdyy:SharedPref 配APPLICATION 就可以了 11/19 22:14 : → sdyy:不過你要倒數計時應該是寫在service而非Activity 11/19 22:16 使用File或是SharedPreference來傳資料給AppWidget的話, 問題在於AppWidget什麼時候會知道這次的更新。 AppWidget正常來說應該會到設定的時間到了執行onUpdate才會來進行更新 而內建設定的更新時間最少是30分鐘以免資源的消耗 所以會沒辦法即時的讓AppWidget更新成新的狀態 若是AppWidget一直用Thread或其他方式強制更新的話是可以這樣做, 但是這種作法當然是很吃資源,而且原Po要的應該是使用者進行操作以後才開始顯示, 在使用者沒有要使用時還一直進行檢查實在是不划算, 所以我會建議讓原Po使用Broadcast的方式來觸發這個事件 反正AppWidget本身就有實作onReceive,直接Override就可以了 不過要注意還是要執行super.onReceive以維持AppWidget本身的LifeCycle 至於AppWidget要顯示的東西,假如只是使用者設定的時間的話就很好做, 但是如果需要在桌面同步進行倒數, 那應該還是要開一個Service來一直強迫AppWidget更新, 或是讓AppWidget本身來進行倒數的迴圈。 即使倒數中又回到Activity,從Activity拿到AppWidget裡的東西也容易多了 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.112.91.176 ※ 編輯: cooper6334 來自: 140.112.91.176 (11/19 23:03)
文章代碼(AID): #1GgaZ3tL (AndroidDev)
文章代碼(AID): #1GgaZ3tL (AndroidDev)