当应用程序不在最近时在后台广播接收器
Broadcast receivers in background when app is not in recents
我正在尝试创建一个 toasts 电池电量 每当 电池电量发生变化时。我正在使用广播接收器并在 'ACTION_BATTERY_CHANGED' 中注册。仅当应用程序仍在最近(即应用程序未关闭)时,它在后台工作正常,但在应用程序关闭时它不起作用!
['ACTION_BATTERY_CHANGED' 当 BatteryLevel 改变时触发。]
代码如下:
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();
}
};
}
一旦你的 MainActivity
被摧毁,你的 BroadcastReceiver
就会消失。这将发生:
- 如果用户按下 BACK,或者
- 如果用户通过其他方式离开(例如,按 HOME)并且您的进程终止
您似乎将 "the app is closed" 定义为当用户将应用滑出概览屏幕(最近的任务列表)时。这通常会终止应用程序的进程,因此您的 BroadcastReceiver
将在此时消失。
我正在尝试创建一个 toasts 电池电量 每当 电池电量发生变化时。我正在使用广播接收器并在 'ACTION_BATTERY_CHANGED' 中注册。仅当应用程序仍在最近(即应用程序未关闭)时,它在后台工作正常,但在应用程序关闭时它不起作用!
['ACTION_BATTERY_CHANGED' 当 BatteryLevel 改变时触发。]
代码如下:
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();
}
};
}
一旦你的 MainActivity
被摧毁,你的 BroadcastReceiver
就会消失。这将发生:
- 如果用户按下 BACK,或者
- 如果用户通过其他方式离开(例如,按 HOME)并且您的进程终止
您似乎将 "the app is closed" 定义为当用户将应用滑出概览屏幕(最近的任务列表)时。这通常会终止应用程序的进程,因此您的 BroadcastReceiver
将在此时消失。