我正在尝试创建一个敬酒电池电量只要电池电量发生变化的应用程序。我正在使用广播接收器,并且已向“ ACTION_BATTERY_CHANGED”注册。仅当该应用程序仍为最新版本(即该应用程序未关闭)时,它才能在后台正常运行,但在该应用程序关闭时它不起作用!
[BatteryLevel更改时会触发['ACTION_BATTERY_CHANGED'。]
下面是代码:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//registering the reciever.
this.registerReceiver(this.mBatInfoReciever,new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}
private BroadcastReceiver mBatInfoReciever = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
int level = intent.getIntExtra("level",0);
/*To get the Battery Level.*/
Toast t=Toast.makeText(getApplicationContext(),String.valueOf(level),Toast.LENGTH_LONG);
t.show();
}
};
}
答案 0 :(得分:0)
一旦您的MainActivity
被销毁,您的BroadcastReceiver
就会消失。这将发生:
您似乎将“应用程序已关闭”定义为用户从概览屏幕(最近的任务列表)中滑动应用程序时的状态。通常这会终止应用程序的进程,因此您的BroadcastReceiver
将在此时消失。