0

Я пытаюсь переопределить домашний ключ и полный экран acitiy, используя код ниже. блокировка домашнего ключа работает нормально, но не может скрыть панель уведомлений (неспособная на полноэкранную активность).Невозможно для полноэкранного режима, когда я использую onAttachedToWindow

public class ScreenLockDemo extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    // TODO Auto-generated method stub 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.screenlock); 

    } 



@Override 
public void onAttachedToWindow() 
{ 
    this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 
    super.onAttachedToWindow(); 

} 

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    if(keyCode==KeyEvent.KEYCODE_BACK){ 
     return true; 
    } 
    if(keyCode==KeyEvent.KEYCODE_HOME){ 
     return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 

}

AndroidManifest.xml:

<activity 
     android:name="com.antivirus.antitheft.ScreenLockDemo" 
     android:configChanges="touchscreen|keyboard|keyboardHidden|navigation|orientation" 
     android:screenOrientation="portrait" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 
     >    
    </activity> 

[из положить выше коде это мило надводной макета, как показано в IMG!. ] [1]

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

Заранее спасибо.

+0

Это поможет: http://stackoverflow.com/questions/9369144/activity-doesnt-show-in-full-screen –

ответ

-1

Попробуйте этот код перед setContentView (XML)

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

Надеюсь, это сработает для вас.

+0

я пытаюсь этот код, но не работает его вырезать верхнюю сторону на макете ... выше код не работает, когда я использую общественной недействительным onAttachedToWindow() \t { \t this.getWindow(). SetType (WindowManager.LayoutParams.TYPE_KEYGUARD); \t \t супер.onAttachedToWindow(); \t} этот метод в моем коде для переопределения клавиши меню. –

+0

Если бы вы пробовали этот код, вы бы обнаружили, что он не работает. Вы не получите полный экран. – AndroidDev

0

Простейшим решением для установки активности как полного экрана является установка его в манифесте. В качестве примера добавьте следующую строку в раздел деятельности в манифесте:

android:theme="@android:style/Theme.NoTitleBar.Fullscreen" 

Поэтому он должен выглядеть примерно так:

<application 
    android:icon="@drawable/ic_launcher" 
    android:label="@string/app_name" > 
    <activity 
     android:name=".blahActivity" 
     android:label="@string/app_name" 
     android:theme="@android:style/Theme.NoTitleBar.Fullscreen" > 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
</application> 
+0

я уже использую этот код, но его не работает в случае общественной пустоте onAttachedToWindow() \t { \t это.getWindow(). SetType (WindowManager.LayoutParams.TYPE_KEYGUARD); \t \t super.onAttachedToWindow(); \t} этот метод –

0

Решить задачу, используя ниже код

@Override 
public void onAttachedToWindow() { 
    // TODO Auto-generated method stub 
    super.onAttachedToWindow(); 

    handler.postDelayed(mUpdateUiMsg, 100); 
    //this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);  
} 


public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    if(keyCode==KeyEvent.KEYCODE_BACK){ 
    return true; 
    } 
    if(keyCode==KeyEvent.KEYCODE_HOME){ 
    return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 


private Runnable mUpdateUiMsg = new Runnable() { 
     public void run() { 


      getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 


     } 
    }; 
+1

Вы не можете получить полный экран с этим. – AndroidDev

0

Решить задачу, используя ниже код

@Override 
public void onAttachedToWindow() { 
    // TODO Auto-generated method stub 
    super.onAttachedToWindow(); 

    handler.postDelayed(mUpdateUiMsg, 100); 
    //this.getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD);  
} 


public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 
    if(keyCode==KeyEvent.KEYCODE_BACK){ 
    return true; 
    } 
    if(keyCode==KeyEvent.KEYCODE_HOME){ 
    return true; 
    } 

    return super.onKeyDown(keyCode, event); 
} 


private Runnable mUpdateUiMsg = new Runnable() { 
     public void run() { 


      getWindow().setType(WindowManager.LayoutParams.TYPE_KEYGUARD); 


     } 
    }; 

В моем случае, после overridding onAttachedToWindow(), я нашел overridePendingTransition(int enterAnim, int exitAnim) или

<style name="Theme.NoTitleBar.WithColoredSpinners" parent="@android:style/Theme.NoTitleBar"> 
    <item name="android:spinnerDropDownItemStyle">@style/SpinnerItem.DropDownItem</item> 
    <item name="android:windowAnimationStyle">@style/AnimationActivity</item> 
</style> 

Не работает, но проблема была решена с использованием этого кода, но пока не знаю. И то же самое, я не знаю метода onAttachedToWindow() Что делать и как оно действует?