2010-06-13 47 views

回答

0

由於您沒有更多的細節內容(可能是關於如何註冊接收器以及如何綁定待定意圖的某些源代碼)。可能您的手機是帶滑動鍵盤的型號,或者這些主屏幕可能會改變方向。因爲當主屏幕的屏幕方向改變(或任何硬件配置)時,主屏幕會膨脹並重新創建。所以,對於你的按鈕,最初綁定到它的意圖在娛樂之後消失了。根據文檔(對不起,找不到鏈接),inflater將只獲得最新的遠程更新。所以,下面的工作:

RemoteViews rv = ...; 
// Assign the button to some pending intent 
rv.setOnClickPendingIntent(View, pi); 
AppWidgetManager.Update(...); 

// And after sometime, you make changes to the rv 
rv.setFloat(); 
// And update again 
AppWidgetManager.Update(...); 

它仍然是確定和按鈕將會觸發等待預期的意圖,但是,如果由於任何原因配置發生變化,主屏幕是無效的(和重建) ,appwidgetmanager只會根據更新更新進行更新,該更新沒有指定關於點擊意圖的任何內容。

解決方法是,每次更新遠程視圖時,都必須設置所有待處理的意圖。我不確定它會如何影響性能,但它是我能做的唯一的工作方法。 (但我的部件更新像16次/秒,至少它的工作:)