- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我的程序中有一个广播接收器,可以像这样对电池电量使用react:
private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(){
@Override
public void onReceive(Context arg0, Intent intent) {
int level = intent.getIntExtra("level", 0);
// do something...
}
}
registerReceiver(this.mBatInfoReceiver,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
但是,此代码必须等待电池状态更新,因此如果您有一个需要根据电池电量设置的 GUI 元素,则它必须等待电池事件发生。有没有办法插入它使其正常工作,或者只是运行一些代码来查看上次广播时的电池电量?
最佳答案
这是在不注册接收器的情况下获取电池电量的方法:
Intent batteryIntent = context.getApplicationContext().registerReceiver(null,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
int rawlevel = batteryIntent.getIntExtra(BatteryManager.EXTRA_LEVEL, -1);
double scale = batteryIntent.getIntExtra(BatteryManager.EXTRA_SCALE, -1);
double level = -1;
if (rawlevel >= 0 && scale > 0) {
level = rawlevel / scale;
}
由于广播的粘性,它可以使用 null BroadcastReceiver。
它使用 getApplicationContext() 技巧,以防您在 Intent 接收器中并获得异常:
android.content.ReceiverCallNotAllowedException: IntentReceiver components are not allowed to register to receive intents
关于android - 在广播接收器响应 Intent.ACTION_BATTERY_CHANGED 之前获取电池电量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3661464/
每当引发Intent.ACTION_BATTERY_CHANGED时,如何设置要调用的方法?我是否必须将BroadcastReciever子类化?或者我可以使用一种方法将操作关联到一种方法。 最佳答案
好的,我正在开发一个 AppWidget,它可以检查电池电量并将其显示在 TextView 上。我的代码如下所示: public class BattWidget extends AppWidgetP
在模拟器中,如果我将 power capacity 设置为不同于当前值的值,我的 BroadcastReceiver 的 onReceive 将被调用新的值(value)。 (我已经注册了 ACTIO
我正在尝试通过使用广播接收器获取电池信息并将其存储在数据库中。我宁愿只在我特别需要的时候才得到它,但我愿意保留一个数据库来记录它的运行记录。无论如何,问题是我的应用程序因以下错误而崩溃: java.l
我正在使用此代码来跟踪我服务中的电池信息: Intent i = new ContextWrapper(applicationContext).registerReceiver(null, n
我打算编写一个应用程序,其唯一目的是监控电池电量,并在电量低于特定电量时启动一个 Intent。我担心的是这本身会耗尽电池电量,而且没有人愿意使用它。 所以我的问题是:使用 ACTION_BATTER
晚上好我写了一篇关于如何编写小部件以在 Android 上显示电池电量的教程,但我发现我的小部件并不总是与“关于手机>状态”屏幕中显示的内容保持同步。我已经安装了一个闭源小部件,以查看它是否始终与“官
我创建了自定义广播接收器来监听电池变化(我想监控电池的百分比水平) 但是我没有收到任何更新。这是我的设置: class MyService : IntentService("MyService") {
我的程序中有一个广播接收器,可以像这样对电池电量使用react: private BroadcastReceiver mBatInfoReceiver = new BroadcastReceiver(
我是一名优秀的程序员,十分优秀!