当应用程序不是最新消息时,在后台广播接收器

时间:2019-03-09 14:50:19

标签: android broadcastreceiver

我正在尝试创建一个敬酒电池电量只要电池电量发生变化的应用程序。我正在使用广播接收器,并且已向“ 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();

    }

};


}

1 个答案:

答案 0 :(得分:0)

一旦您的MainActivity被销毁,您的BroadcastReceiver就会消失。这将发生:

  • 如果用户按下BACK,或者
  • 如果用户通过其他方式离开(例如,按HOME),并且您的过程终止了

您似乎将“应用程序已关闭”定义为用户从概览屏幕(最近的任务列表)中滑动应用程序时的状态。通常这会终止应用程序的进程,因此您的BroadcastReceiver将在此时消失。