我希望每次 Intent.ACTION_BATTERY_CHANGED 被广播时调用一个广播接收器,以便我可以跟踪一些数据。
我现在拥有的:
public class ReceiverApplication extends Application {
@Override
public void onCreate() {
// Register Receiver
}
public static BroadcastReceiver myReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// Start Service to progress data
}
};
}
这工作正常,直到我使用最近的应用程序“任务管理器”刷掉我的偏好屏幕之一或我的主要活动。然后广播接收器不再被调用。如果我开始一项活动,则会调用 ReceiverApplication 的 onCreate() 并再次开始工作。
我可以通过一直运行一个空服务来解决这个问题。该服务似乎并没有通过滑动活动而被杀死,并且 onCreate() 在一段时间后被调用并重新启动 BroadcastReceiver 而不做任何事情。这里的问题是我不希望服务一直运行。
那么,我怎样才能在任何可以接收用户想要的广播的活动或服务之外获得广播接收器?