0
我創建了一個WiFi小部件,可以讓用戶輕鬆訪問WiFi。 小部件功能工作正常。 現在我想向小部件展示一個動畫。在連接信號條時,請定期點亮一次,然後向上,直到啓用WiFi。 爲此,我創建了一個具有不同信號級別的圖像陣列。Android中的AppWidget動畫
雖然連接我打電話給一個方法startAnimation。
public void StartAnimation()
{
System.out.println("start");
frame = 0;
animationFlag = true;
if(!handler.hasMessages(0))
handler.postDelayed(AnimateRunnable, FRAME_RATE);
}
從satrtAnimation中我將animationFlag設置爲true。
之後,狀態變成了Enbaled或Not connected那時我正在調用stopAnimation方法。
public void StopAnimation()
{
System.out.println("Stop Animation Before:"+animationFlag);
animationFlag = false;
System.out.println("Stop Animation:After:"+animationFlag);
if(!handler.hasMessages(0)) {
System.out.println("handler.hasmessage0");
handler.removeCallbacks(AnimateRunnable);
}
}
在這裏,我正在製作animationFlag爲false。並在其前後打印其值。它正確顯示。
但在My Runnable動畫標誌保持爲真。所以,我的小工具越來越吊死
final Runnable AnimateRunnable =new Runnable(){
public void run()
{
System.out.println("run:"+animationFlag);
if(animationFlag)
{
System.out.println("Animation Flag:"+animationFlag);
AppWidgetManager ap =AppWidgetManager.getInstance(mContext);
frame = ++frame%5;
remoteViews.setImageViewResource(R.id.wifi_signal_strength,rangeImages[frame]);
ap.updateAppWidget(thisWidget, remoteViews);
handler.postDelayed(AnimateRunnable, FRAME_RATE);
}
}
};