バッテリー残量を表示するウィジェットを作成していますが、
onReceiveの動きについて、分からない事があります。
ウィジェット実行中にACTION_BATTERY_CHANGEDをBroadcastReceiverが
受け取り、onReceiveが実行される事は理解できます。
しかし、ウィジェットを初回起動(ホーム画面に表示)した時もonReceive
が実行されるのはなぜでしょうか。
バッテリーの残量が減った時以外でもACTION_BATTERY_CHANGEDが通知される
のでしょうか。
プログラムを作る側としては、初回起動でonReceiveが実行される方が
バッテリー残量を表示出来て良いのですが、不思議なので質問します。
public class SampleBatteryWidget extends AppWidgetProvider {
@Override
public void onUpdate(Context c, AppWidgetManager awm, int[] awi) {
Intent in = new Intent(c, WidgetService.class);
c.startService(in);
}
public static class WidgetService extends Service {
@Override
public void onStart(Intent in, int si) {
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_BATTERY_CHANGED);
registerReceiver(batteryReceiver, filter);
}
@Override
public IBinder onBind(Intent in) {
return null;
}
}
private static BroadcastReceiver batteryReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context c, Intent in) {
}
};
}
--
このメールは Google グループのグループ「日本Androidの会」に登録しているユーザーに送られています。
このグループから退会し、グループからのメールの配信を停止するには android-group-j...@googlegroups.com にメールを送信してください。
このグループに投稿するには android-g...@googlegroups.com にメールを送信してください。
http://groups.google.com/group/android-group-japan からこのグループにアクセスしてください。
その他のオプションについては https://groups.google.com/d/optout にアクセスしてください。
zaki様