Re: [問題] 關於 Widget 傳值
※ 引述《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)
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 4 篇):