【发布时间】:2011-12-23 16:31:16
【问题描述】:
我在使用 RemoteViews 时遇到了一些问题。只想制作一个显示电池电量的小部件。我已经完成了所有其他的事情。
这是我的课:
公共类 BatteryLevel 扩展 AppWidgetProvider{
公共无效onUpdate(上下文上下文,AppWidgetManager appWidgetManager,int [] appWidgetIds){
context.startService(new Intent(context, BatteryMonitorReceiver.class));
}
公共静态类 BatteryMonitorReceiver 扩展服务{
私有 int currentBatteryLevel = 0;
私人广播接收器电池接收器=新广播接收器(){
@覆盖
public void onReceive(上下文上下文,意图意图){
currentBatteryLevel = intent.getIntExtra("level", 0);
}
};
@覆盖
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);
}
@覆盖
公共 IBinder onBind(意图意图){
返回空值;
}
}
}
当我启动应用程序时没有错误,顺便说一句,R.id.level 没有更新。
怎么了?
注意:api 版本 7。
【问题讨论】:
标签: android service android-widget