2011-11-09 64 views
0

大家好,我想用動畫製作android中的電池小工具。我想我可以製作動畫,但我想知道如何一次又一次地獲得電池狀態?可以通過線程來完成嗎?或者需要其他東西。這裏是動畫的簡單代碼。請解釋我將如何一次又一次地從電池中獲取數據。我知道這些功能,但我不知道使用它們的機制。Android中的電池小工具

public class HelloWidget extends AppWidgetProvider{ 

    RemoteViews remoteViews; 
    AppWidgetManager appWidgetManager; 
    ComponentName thisWidget; 
    ImageView img; 
    Bitmap icon, icon1; 
    int counter = 0; 

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



     this.appWidgetManager = appWidgetManager; 
     remoteViews = new RemoteViews(context.getPackageName(), R.layout.main); 
     thisWidget = new ComponentName(context, HelloWidget.class); 
     remoteViews.setImageViewResource(R.id.imgv, R.drawable.icon2); 
     appWidgetManager.updateAppWidget(thisWidget, remoteViews); 


     (new Thread() 
     { 

      public void run() 
      { 

       while(true) 
       { 
        if(counter%15>=0 && counter%15 <=7) 
        { 
         remoteViews.setImageViewResource(R.id.imgv, R.drawable.icon2); 
        } 
        else 
        { 
         remoteViews.setImageViewResource(R.id.imgv, R.drawable.icon); 
        } 
        appWidgetManager.updateAppWidget(thisWidget, remoteViews); 
        counter++; 
       } 

      } 

     } 

      ).start(); 




} 

回答

0

爲電池事件註冊廣播接收器並且不會每次查詢。

IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED); 
mContext.registerReceiver(batteryLevelReceiver, batteryLevelFilter); 
+0

但是何時何地? –

+1

在您的oncreate()註冊廣播接收器如上所示。現在,只要電池狀態發生變化,框架就會廣播一個您可以在batteryLevelRecevier中觀察到的事件。意圖在其數據字段中包含電池級別,您可以使用「int rawlevel = intent.getIntExtra(」level「,-1);」 – Vinoth