Изменить цвет строки состояния без окна

Я хочу манипулировать строкой состояния (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 пример.

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

Представьте, что фреймворк позволяет делать такие вещи, а затем вредоносные приложения могут неправильно использовать его для случайного изменения цвета строки состояния каждую секунду, когда пользователь даже не открыл вредоносное приложение. Я думаю, что это будет считаться недостатком, а не особенностью.

Другие вопросы по тегам