2012-11-13 64 views
0

如何隱藏onUpdate()方法,當我添加小部件到主屏幕?當我將小部件添加到主屏幕時如何屏蔽onUpdate()方法?

我有一個小部件,用於監聽用戶點擊。並且我在onUpdate()中迴應它。 問題是,即使在我將小部件添加到主屏幕時,onUpdate()也會執行。

@Override 
    public void onUpdate(Context context, AppWidgetManager appWidgetManager, 
     int[] appWidgetIds) { 

      if(flag) 
       { 
       Toast.makeText(context, "OFF", Toast.LENGTH_SHORT).show(); 
flag=false; 
       } 
      else 
       { 
       Toast.makeText(context, "ON", Toast.LENGTH_SHORT).show(); 
flag=true; 
       } 
} 

或者,如果不在onUpdate()方法中,我該如何迴應用戶點擊?

回答

0

問題是,即使當我將小部件添加到主屏幕時,onUpdate()也會被執行。

這不是一個「問題」。當用戶將您的應用程序小部件添加到主屏幕時,需要調用onUpdate(),以便您可以定義應用程序小部件的外觀。

或者如果不在onUpdate()方法中,我該如何迴應用戶點擊?

歡迎您隨意使用您希望的任何PendingIntent用您的按鈕等在您的應用程序小部件。 PendingIntent不必路由回onUpdate()方法。

另外,我注意到上面的代碼片段假定有一個名爲flag的數據成員(或可能是靜態數據成員)。請記住,您的過程不會總是在應用程序窗口小部件更新之間生存。因此,任何種類的「標誌」都需要存儲在持久性的地方:數據庫,SharedPreferences或其他某種形式的文件。

相關問題