开发者社区> 问答> 正文

Android 获取电量,不实时改变,新手菜鸟求高手解答,谢谢?报错

因为是动态注册broadcast的,xml就没有做处理,在这里不附上了。

还有一个问题就是,加入onDestroy后退出时报错,提示没有注册,但已经是动态注册了啊。

package com.example.batterylow;

import java.util.Timer;

import android.os.Bundle;
import android.os.SystemClock;
import android.app.Activity;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.view.Menu;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
 TextView textView;
 private BroadcastReceiver batteryLevelReceiver;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  textView = (TextView) this.findViewById(R.id.battery);
        batteryLevel();
       
        IntentFilter batteryLevelFilter = new IntentFilter(Intent.ACTION_BATTERY_CHANGED);
        registerReceiver(batteryLevelReceiver, batteryLevelFilter);
    }
 
 @Override
 protected void onDestroy() {
  super.onDestroy();
  unregisterReceiver(batteryLevelReceiver);
 }
      private void batteryLevel() {
        batteryLevelReceiver = new BroadcastReceiver() {
            public void onReceive(Context context, Intent intent) {
                context.unregisterReceiver(this);
                int rawlevel = intent.getIntExtra("level", -1);
                int scale = intent.getIntExtra("scale", -1);
                int level = -1;
                if (rawlevel >= 0 && scale > 0) {
                    level = (rawlevel * 100) / scale;
                }
                textView.setText( level + "%");
            }
        };

    }

}

展开
收起
爱吃鱼的程序员 2020-06-22 14:29:04 421 0
1 条回答
写回答
取消 提交回答
  • https://developer.aliyun.com/profile/5yerqm5bn5yqg?spm=a2c6h.12873639.0.0.6eae304abcjaIB

    多写了一句。自己仔细看。<preclass="brush:java;toolbar:true;auto-links:false;">publicvoidonReceive(Contextcontext,Intentintent){context.unregisterReceiver(this);<preclass="brush:java;toolbar:true;auto-links:false;">几个意思?你想要干嘛?

    2020-06-22 14:29:23
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
58同城Android客户端Walle框架演进与实践之路 立即下载
Android组件化实现 立即下载
蚂蚁聚宝Android秒级编译——Freeline 立即下载