Android - можно ли зарегистрировать приемник несколько раз? - PullRequest
0 голосов
/ 30 июня 2018
//Gives current batterie temperature in celsius
public void  getBatteryTemperature()
{
    BroadcastReceiver BatterieTemperatureReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            int batTemp = intent.getIntExtra(BatteryManager.EXTRA_TEMPERATURE,0)/10;
            //optional Log output for debug
            Log.i("batterietemperature", String.valueOf(batTemp) + "°C");
        }
    };
    this.getContext().registerReceiver(BatterieTemperatureReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}

//Gives current batterie level in percent 
public void  getBatteryLevel()
{
    BroadcastReceiver BatterieLevelReceiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            int batLevel = intent.getIntExtra(BatteryManager.EXTRA_LEVEL,0);
            //optional Log output for debug
            Log.i("BatterieLevel", "Level " + batLevel + "%");
        }
    };
    this.getContext().registerReceiver(BatterieLevelReceiver, new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
}

Эти методы вызываются в моем Main, но при разработке я спрашивал себя, можно ли регистрировать получателя несколько раз? Или это может вызвать проблемы? Чувствовать себя немного плохо, чтобы сделать что-то вроде этого ... Я надеюсь, что такие вопросы разрешены здесь:)

1 Ответ

0 голосов
/ 30 июня 2018

Я не понимаю, почему вы не можете объединить их вместе и создать BatteryInfoReceiver, зарегистрировать его один раз и извлечь температуру и количество сока, оставшегося одновременно.

Тем не менее, ваш подход кажется нормальным. Затраты на вызов двух получателей незначительны, объем памяти, который система должна хранить, чтобы запомнить два разных получателя вместо одного также в двухзначных числах при измерении в байтах.

Наконец, если это сработает, я бы оставил это =)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...