Android 电池部件在一段时间后停止更新
我正在尝试制作一个电池小部件,它将显示电池电量。当它启动时,工作正常,但一段时间后,它停止工作,并开始显示电池电量为0。请帮我弄清楚我错过了什么 代码如下:Android 电池部件在一段时间后停止更新,android,widget,battery,Android,Widget,Battery,我正在尝试制作一个电池小部件,它将显示电池电量。当它启动时,工作正常,但一段时间后,它停止工作,并开始显示电池电量为0。请帮我弄清楚我错过了什么 代码如下: public class Widget extends AppWidgetProvider { static int level; static int powers; AppWidgetManager ap; @Override public void onReceive(final Context context, Inten
public class Widget extends AppWidgetProvider {
static int level;
static int powers;
AppWidgetManager ap;
@Override
public void onReceive(final Context context, Intent intent) {
// TODO Auto-generated method stub
super.onReceive(context, intent);
System.out.println(intent.getAction());
if (intent.getAction().equalsIgnoreCase(Intent.ACTION_BATTERY_CHANGED)) {
int rawlevel = intent.getIntExtra("level", -1);
int scale = intent.getIntExtra("scale", -1);
powers = intent.getIntExtra("plugged", -1);
level = -1;
if (rawlevel >= 0 && scale > 0) {
level = (rawlevel * 100) / scale;
}
onUpdatew(context);
}
}
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
final int N = appWidgetIds.length;
for (int i = 0; i < N; i++) {
int appWidgetId = appWidgetIds[0];
Intent intent = new Intent(context, xyz.class);
PendingIntent pendingIntent = PendingIntent.getActivity(context, 0,
intent, 0);
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget_main);
views.setTextViewText(R.id.txt1, level + "");
Log.i("Power", powers + "");
Log.i("Level", level + "");
views.setOnClickPendingIntent(R.id.iv, pendingIntent);
appWidgetManager.updateAppWidget(appWidgetId, views);
super.onUpdate(context, appWidgetManager, appWidgetIds);
}
}
@Override
public void onEnabled(Context context) {
// TODO Auto-generated method stub
System.out.println(context.getApplicationContext().registerReceiver(
this, new IntentFilter(Intent.ACTION_BATTERY_CHANGED)));
onUpdatew(context);
super.onEnabled(context);
}
public void onUpdatew(Context context) {
RemoteViews views = new RemoteViews(context.getPackageName(),
R.layout.widget_main);
views.setTextViewText(R.id.txt1, level + "");
AppWidgetManager myManager = AppWidgetManager.getInstance(context);
ComponentName myName = new ComponentName(context, Widget.class);
myManager.updateAppWidget(myName, views);
}}
公共类小部件扩展了AppWidgetProvider{
静态整数级;
静态整数幂;
AppWidgetManager ap;
@凌驾
公共void onReceive(最终上下文、意图){
//TODO自动生成的方法存根
super.onReceive(上下文、意图);
System.out.println(intent.getAction());
if(intent.getAction().equalsIgnoreCase(intent.ACTION\u电池更换)){
int rawlevel=intent.getIntExtra(“级别”,-1);
int scale=intent.getIntExtra(“scale”,-1);
powers=intent.getIntExtra(“插入式”、-1);
级别=-1;
如果(原始标高>=0&&scale>0){
级别=(原始级别*100)/刻度;
}
onUpdatew(上下文);
}
}
@凌驾
public void onUpdate(上下文上下文,AppWidgetManager AppWidgetManager,
int[]appWidgetIds){
final int N=appWidgetIds.length;
对于(int i=0;i