Активность не отображается в полноэкранном режиме - PullRequest
1 голос
/ 21 февраля 2012

Я определил новое действие в своем проекте, и у меня возникли некоторые проблемы с fullScreen.

Я определил в файле манифеста, как это:

<activity android:name=".Test"
     android:launchMode="singleInstance" android:screenOrientation="portrait"
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen"
     .............
>

Если я запускаю действие с другогоактивность, я получил желаемый полный экран.Проблема в том, что когда я запускаю это действие из BroadcastReceiver - мне нужно открыть это действие в BroadcastReceiver примерно так:

public void onReceive(Context context, Intent intent) {
     Intent test = new Intent(context, Test.class);
     test.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
     context.startActivity(test);
}

Я тоже так пытался:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    requestWindowFeature(Window.FEATURE_NO_TITLE);
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, 
       WindowManager.LayoutParams.FLAG_FULLSCREEN);

    setContentView(R.layout.test);
}

инет полного экрана, если действие начинается с моего BroadcastReciever.

Почему я не получаю полный экран в этом случае?Есть ли способ запросить полноэкранный режим после создания и отображения действия?

1 Ответ

2 голосов
/ 12 марта 2012

Я увлекаюсь вопросом. Есть метод, который я пропустил, чтобы добавить в текст вопроса - я не думал, что это актуально. Поскольку я хочу, чтобы это действие перехватывало (не реагировало) нажатие кнопки «Домой», и по этой причине я переопределяю метод onAttachedToWindow () следующим образом:

public void onAttachedToWindow() {
    getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
    super.onAttachedToWindow();
}

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

public void onAttachedToWindow() {
    handler.sendEmptyMessageDelayed(100,100);
    super.onAttachedToWindow();
}

и обработчик:

public boolean handleMessage(Message msg) {
    getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);
}

и это решило мою проблему. Я надеюсь, что это поможет кому-то!

...