I'm having problems using RemoteView. Just want to create a widget that shows the battery level. I have already done the rest.
Here is my class:
public class BatteryLevel extends AppWidgetProvider {
public void onUpdate (Context context, AppWidgetManager appWidgetManager, int [] appWidgetIds) {
context.startService (new Intent (context, BatteryMonitorReceiver.class));
}
public static class BatteryMonitorReceiver extends Service {
private int currentBatteryLevel = 0;
private BroadcastReceiver batteryReceiver = new BroadcastReceiver () {
@Override
public void onReceive (Context context, Intent intent) {
currentBatteryLevel = intent.getIntExtra ("level", 0);
}
};
@Override
public void onStart (Intent intent, int startId) {
registerReceiver (this.batteryReceiver, new IntentFilter (Intent.ACTION_BATTERY_CHANGED));
RemoteViews updateViews = new RemoteViews (getPackageName (), R.layout.main);
updateViews.setTextViewText (R.id.level, String.valueOf (currentBatteryLevel));
ComponentName thisWidget = new ComponentName (this, BatteryLevel.class);
AppWidgetManager manager = AppWidgetManager.getInstance (this);
manager.updateAppWidget (thisWidget, updateViews);
}
@Override
public IBinder onBind (Intent intent) {
return null;
}
}
} When I run the application without errors and there is no btw without updating at the level of R.id.level.
What's wrong?
Note: api version 7.
source share