#broadcastreceiver #android-broadcast
Вопрос:
У меня есть широковещательный приемник, который принимает и хранит некоторые идентификаторы по мере их поступления. И есть функция, которая позже осуществит некоторую обработку. Что я хотел бы сделать, поскольку входящие данные поступают в совершенно непредсказуемом темпе, так это позволить Получателю просто хранить данные по мере их поступления, но сделать функцию обработки, чтобы своевременно проверять, есть ли в списке массивов, куда поступают новые данные, какие-то новые элементы. Скажем, проверяйте каждые 2 минуты. В низкоуровневом программировании это довольно простая задача, но не мог бы кто-нибудь указать, возможно ли такое на Android? Спасибо!
Приемник вещания:
BroadcastReceiver broadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
idToProcessArrayList.add(intent.getIntExtra("Some incoming Id", 0));
}
};
registerReceiver(broadcastReceiver, new IntentFilter("Some action description"));
Функция Игрушки:
//Make this function repeat every x minutes in order to check if idToProcessArrayList<int> has any new data
private void processExpiredAlarms(Context context, Set<Integer> idToDelete) {
for (Iterator<Integer> iteratorIdToProcess = idToProcessArrayList.iterator(); iteratorIdToProcess.hasNext();) {
....
}
}