Вы не можете получить окно в Сервисе.Но вы можете использовать WindowManager , чтобы добавить представление (root), как вы уже сделали.
И вы также можете обновить представление через updateViewLayout , вы можете изменить состояние вашего окна (тип окна, флаг, x, y, w, h, гравитация и т. Д.), Как показано ниже.
private WindowManager mWindowManager;
private WindowManager.LayoutParams mLayoutParams;
..........
//let's assume that an event occurred
if(mConfiguration.orientation==Configuration.ORIENTATION_LANDSCAPE){
mLayoutParams.screenOrientation=Configuration.ORIENTATION_PORTRAIT;
}
mLayoutParams.softInputMode=WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN;
mLayoutParams.gravity = Gravity.TOP|Gravity.CENTER;
int flag=0
|WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN
|WindowManager.LayoutParams.FLAG_SHOW_WHEN_LOCKED
|WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM
;
mLayoutParams.flags=flag;
mWindowManager.updateViewLayout(mRootView, mLayoutParams);