私はバッテリーレベルをチェックしてTextViewに表示するAppWidgetに取り組んでいます。私のコードは次のようになります。ACTION_BATTERY_CHANGED Crazyのように発砲
public class BattWidget extends AppWidgetProvider {
private RemoteViews views = new RemoteViews("com.nickavv.cleanwidgets", R.layout.battlayout);
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager, int appWidgetIds[]) {
final int N = appWidgetIds.length;
context.getApplicationContext().registerReceiver(this,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[i];
appWidgetManager.updateAppWidget(appWidgetId, views);
}
}
@Override
public void onReceive(Context context, Intent intent) {
super.onReceive(context, intent);
Log.d("onReceive", "Received intent " + intent);
if (intent.getAction().equals(Intent.ACTION_BATTERY_CHANGED)) {
Integer level = intent.getIntExtra("level", -1);
views.setTextViewText(R.id.batteryText, level+"%");
AppWidgetManager myAWM = AppWidgetManager.getInstance(context);
ComponentName cn = new ComponentName(context, AirWidget.class);
onUpdate(context, myAWM, myAWM.getAppWidgetIds(cn));
}
}
}
とすぐ、私は私のホームスクリーン上にウィジェットをドロップするように、約100これらのログのオフ発射開始しますので、私は心配そうだ、それはACTION_BATTERY_CHANGEDを受けていますと言って、二を呼び出します。これはそれぞれのパーセント低下のために放送されるだけではありませんか?実際に私のランチャー全体が遅れてしまったので、私はそれをアンインストールしなければなりませんでした。それは正しいことではありません。
これについて実際には分かっていませんが、バッテリーを監視し、あらかじめ定義された時間間隔でwidgitにフィードバックするサービスを設定する価値がありますか? – mAndroid