Re: [問題] Widget 的 onUpdate

看板AndroidDev作者 (Mr. Pan)時間12年前 (2013/05/27 18:50), 編輯推噓1(102)
留言3則, 1人參與, 最新討論串4/4 (看更多)
問題解決了~ 感謝 gpc 大的幫忙,知道問題出在哪邊了 orz 還是無法確定是否與 Flag 有關(我想應該是有的) 最主要會發生這個問題是網路上所說 API Level 14 之後 RemoteView 可以 Update 只部分。 這點確實沒錯: void methodA(){ RemoteViews rv=new RemoteViews(/*略*/); rv.setOnClickPendingIntent(R.id.btn1,btn1PendingIntent); /* bla bla bla */ ComponentName thisWidget=/*略*/; AppWidgetManager manager=AppWidgetManager.getInstance(context); manager.updateAppWidget(thisWidget, rv); methodB(); } void methodB(){ RemoteViews rv=new RemoteViews(/*略*/); rv.setOnClickPendingIntent(R.id.btn2,btn2PendingIntent); /* bla bla bla */ ComponentName thisWidget=/*略*/; AppWidgetManager manager=AppWidgetManager.getInstance(context); manager.updateAppWidget(thisWidget, rv); } 這樣下來確實 btn1 和 btn2 都會有所反應,沒有問題 但是在 launcher 重新啟動後,widget 只會剩下 btn2 有反應 因為我的寫法中在按下主要的底個些按鈕後會去 reset 另一個按鈕的 pendingIntent 用的就是上面那種方式,所以會造成後來按鈕都沒反應(只有最後一個有反應) 只要在每次 update 之前,重設全部 btn 的 pendingIntent 就解決了 希望如果有遇到相同問題的人可以幫到忙~ 也再次感謝 gpc 大~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.121.205.161

05/28 12:36, , 1F
不是都要重設嗎 我老古板 都只用最舊的API...XD
05/28 12:36, 1F

05/28 12:37, , 2F
婀 沒錯 這是很合理的行為 因為launcher gg
05/28 12:37, 2F

05/28 12:37, , 3F
所以之前設過的pending intent已經清除 必須重設
05/28 12:37, 3F
文章代碼(AID): #1HepfmTp (AndroidDev)
文章代碼(AID): #1HepfmTp (AndroidDev)