Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android widget会在几个小时后停止更新代码吗?_Android_Widget_Battery - Fatal编程技术网

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()
本身结尾的事情。

解决方案是什么?你能指引我吗?我已经发布了同样的问题。萨拉姆!你能解决这个问题吗?我需要帮助。