Изменить цвет строки состояния без окна
Я хочу манипулировать строкой состояния (ex.color), но в фоновом режиме. Я использую сервис переднего плана, чтобы сделать это. Таким образом, нет окна, как это происходит в фоновом режиме, в частности, нет активности. Тем не менее, функция
public abstract void setStatusBarColor (int color)
вызывается абстрактным классом Window: https://developer.android.com/reference/android/view/Window.html
И так как он абстрактный, я не могу его инициировать и не могу использовать getWindow(), так как не реализую класс активности. Следующий ответ использует Activity. Есть ли другой способ реализовать это? Как изменить цвет строки состояния в Android
1 ответ
И так потому что это (
setStatusBarColor()
) абстрактно я не могу его инициировать и не могу использоватьgetWindow()
Вы не должны создавать экземпляр Window
заниматься самостоятельно, это то, что вы должны извлечь из фреймворка, в частности, из упражнения. Пока у вас нет активности, вы не можете получить ссылку наWindow
пример.
Если предположить, что процесс вашего приложения находится не на переднем плане (то есть нет видимых действий), то у вас нет способов изменить цвет строки состояния.
Представьте, что фреймворк позволяет делать такие вещи, а затем вредоносные приложения могут неправильно использовать его для случайного изменения цвета строки состояния каждую секунду, когда пользователь даже не открыл вредоносное приложение. Я думаю, что это будет считаться недостатком, а не особенностью.