看板 AndroidDev 關於我們 聯絡資訊
問題解決了~ 感謝 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
gpc:不是都要重設嗎 我老古板 都只用最舊的API...XD 05/28 12:36
gpc:婀 沒錯 這是很合理的行為 因為launcher gg 05/28 12:37
gpc:所以之前設過的pending intent已經清除 必須重設 05/28 12:37