android widget会在几个小时后停止更新代码吗?
我正在处理一个电池小部件,因此当出现android widget会在几个小时后停止更新代码吗?,android,widget,battery,Android,Widget,Battery,我正在处理一个电池小部件,因此当出现Intent.ACTION\u battery\u CHANGED时,它由小部件onReceive()方法接收,我现在可以从中获取其数据。问题是,这整个过程进行得很顺利,但当时间过去时,你可以说widget开始运行,可以说4到5个小时,widget停止更新,此时我正在使用textView显示电池数据,但几小时后widget停止更新textView中的数据,下面是代码 下面是widget的更新方法 @Override public void onUpdate(C
Intent.ACTION\u battery\u CHANGED
时,它由小部件onReceive()方法接收,我现在可以从中获取其数据。问题是,这整个过程进行得很顺利,但当时间过去时,你可以说widget开始运行,可以说4到5个小时,widget停止更新,此时我正在使用textView显示电池数据,但几小时后widget停止更新textView中的数据,下面是代码
下面是widget的更新方法
@Override
public void onUpdate(Context context, AppWidgetManager appWidgetManager,
int[] appWidgetIds) {
context.getApplicationContext().registerReceiver(this,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
ComponentName cn =
new ComponentName(context, BatteryInfoActivity.class);
appWidgetManager.updateAppWidget(cn, this.views);
}
下面是onRecive方法
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (action.equals(Intent.ACTION_BATTERY_CHANGED)) {
//Integer level = intent.getIntExtra("level", -1);
String mgs = "--";
//String BatterInfo = "Level"+ intent.getIntExtra("level", -1)+ "/" + intent.getIntExtra("scale", -1);
Integer level = intent.getIntExtra("level", -1);
Integer scale = intent.getIntExtra("scale", -1);
Integer temp = intent.getIntExtra("temperature",-1);
Integer voltage = intent.getIntExtra("voltage", -1);
Integer health = intent.getIntExtra("health", -1);
boolean present = intent.getBooleanExtra("present", false);
Integer plugged = intent.getIntExtra("plugged", -1);
String technology = intent.getStringExtra("technology");
Integer status = intent.getIntExtra("status",-1);
mgs = mgs + " Technology " + technology + "--";
mgs = mgs + "Battery is Present " + present+"--";
mgs = mgs + " level "+ level + "/" + scale + "--";
mgs = mgs + "tempuratue" + temp + "--";
mgs = mgs + "voltage"+ voltage + "--";
this.views.setTextViewText(R.id.textView1, mgs);
ComponentName cn =
new ComponentName(context, BatteryInfoActivity.class);
AppWidgetManager.getInstance(context).updateAppWidget(cn, this.views);
}
super.onReceive(context, intent);
}
您不能通过这种方式从另一个
BroadcastReceiver
注册一个BroadcastReceiver
。在onReceive()
中,您不能做很多超过onReceive()
本身结尾的事情。解决方案是什么?你能指引我吗?我已经发布了同样的问题。萨拉姆!你能解决这个问题吗?我需要帮助。