Причина, по которой приложение зависает, заключается в том, что в Android реализована концепция потока пользовательского интерфейса: короче говоря, поток, который отображает пользовательский интерфейс, отвечает за ввод данных пользователем и т. Д. Чтобы убедиться, что ваше приложение не работает медленно, необходимо иметь возможность визуализации. в каждые 16 мс Windows для 60 кадров в секунду. Таким образом, если вы перегружаете поток пользовательского интерфейса (как в большом цикле / IO) - система не сможет визуализировать пользовательский интерфейс, вовремя реагировать на события, поэтому приложение зависнет.
Чтобы избежать этого, вам нужно получить асинхронные данные. Наилучшим вариантом будет размещение в Сервисе. На GitHub есть много примеров, вот хороший:
Шлюз обычно устанавливается в/etc/sysconfig/network-scripts/ifcfg-eth0, не в/etc/sysconfig/network. Например, на моей текущей машине:
/etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=flyboys
NISDOMAIN=ekcineon
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
ONBOOT=yes
HWADDR=00:1d:09:31:3a:cc
NETMASK=255.255.255.0
IPADDR=150.102.65.30
GATEWAY=150.102.65.252
TYPE=Ethernet
Обратите внимание, что я установил HWADDR, потому что у меня есть две платы Ethernet, и я хочу удостовериться, что правильный присвоен eth0. Конфигурация для второй карты находится в/etc/sysconfig/network-scripts/ifcfg-eth1
Я не использовал последние версии Fedora, но он часто устанавливался как переменная ШЛЮЗА в/etc/sysconfig/network.
Конечно, если бы Вы просто хотели, чтобы это работало, то Вы могли бы просто поместить команды в/etc/rc.local, который будет выполняться, когда последовательность начальной загрузки завершается.
Не видели Fedora. Но разве некоторый GUI для такого рода вещи не должен там быть? Если у Вас есть выполнение попытки Gnome gnome-network-preferences